部分評価
部分評価(Partial Evaluation)は、プログラムの一部の入力を既知の値に固定し、残りの入力に対して最適化されたコードを生成する計算機科学の手法である。これにより、プログラムの実行効率を向上させたり、特殊化されたプログラムを自動生成したりすることが可能となる。
背景メモ
- **部分評価**(Partial Evaluation)は、プログラムの一部の入力が既知である場合に、その情報を使って可能な計算をあらかじめ実行し、残りの入力が与えられたときに高速に動く「専門化された」プログラムを生成する技術。
- 例えば、汎用的な描画エンジンに「特定のOS向けの最適化」という既知の情報を与え、OS固有の処理を事前に済ませた専用プログラムを生成する、といった使い方ができる。
- この理論は1970年代にYoshihiko Futamura(二村良彦)らが提唱した**二村射影**(Futamura Projections)として知られ、コンパイラを自動生成するアイデアにも繋がっている。
- 実用面では、テンプレートエンジン、データベースクエリの最適化、JITコンパイラの基盤など、様々な形で応用されてきた。特に**Supermachine**構想(未実現)など、ハードウェアレベルでの部分評価も理論的には提案されている。