Partial Evaluation is a program optimization by spezialication technique.

A computer program is seen as a mapping prog: {Istatic, Idynamic} ==> O of input data into output data. Istatic is the part of the input data known at compile time.

The partial evaluator transforms {prog, Istatic} into prog* i.e. precomputes all static input at compile time. prog* is called the residual program.

prog: {Istatic, Idynamic}

> O becomes prog*: Idynamic

> O which in general runs more efficiently.

See also C++ Template metaprogramming