Main Principles of Program Specialization

Renaud Marlet · 2012

This chapter examines the main principles of program specialization. The first section precisely defines what a specialized program is, in terms of precomputations and semantic equivalence to the original program. The second section explains the advantages of specialization from the point of view of performance (in time and space). The third section, without detailing the techniques involved in program specialization,constructs the general framework of an automated specialization process, and examines the pros and cons of this. The fourth section describes the main applications of program specialization: compiling with an interpreter, changing an interpreter into a compiler, and creating a compiler generator. The fifth section distinguishes two specialization times (compile time and runtime) and examines the uses to which the resulting specialized programs could be put. The final section of the chapter discusses questions relating to whether or not specialization is profitable, particularly in terms of time and space saved.

Read the paper · More papers on PaperTik