Partial evaluation provides a unifying paradigm for a broad spectrum o
f work in program optimization, compiling, interpretation and the gene
ration of automatic program generators [Bjorner et al. 1987; Ershov 19
92; and Jones et al. 1993]. It is a program optimization technique, pe
rhaps better called program specialization, closely related to but dif
ferent from Jorring and Scherlis' staging transformations [1986]. It e
mphasizes, in comparison with Burstall and Darlington [1977] and Jorri
ng and Scherlis [1986] and other program transformation work, full aut
omation and the generation of program generators as well as transformi
ng single programs. Much partial evaluation work to date has concerned
automatic compiler generation hom an interpretive definition of a pro
gramming language, but it also has important applications to scientifi
c computing, logic programming, metaprogramming, and expert systems; s
ome pointers are given later.