Specialization Techniques
Renaud Marlet · 2012
This chapter provides the broad view of program specialization, describing how specialized programs can be created: based on which transformations, and with what guarantees in terms of termination and correctness. There are two main specialization strategies: online specialization and offline specialization. First, the chapter provides the automatic specialization that carries out a program transformation, of which the chapter examines the various forms. Next, the chapter touches on the question of the termination of a specialization process, and in particular the notion of a stop criterion. Further, it examines the problem of the correctness of transformation, with emphasis placed on practical issues. Finally, the chapter mentions other forms of specialization, as well as specialization functionalities already present in certain forms in compilers and in preprocessors and multilevel languages.