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