Offline Specialization
Renaud Marlet · 2012
This chapter focuses on one specific specialization strategy called offline specialization. Offline specialization highlights the concept of binding time, which is actually reminiscent of the execution time. The chapter first presents the general principles of offline specialization – in particular, the concepts of binding-time analysis (bta), generating extension, and a compiler generator. Next, it discusses its advantages and disadvantages in comparison to its “rival” online specialization. Then, the chapter details the main elements of bta, which is central to offline specialization. Finally, the chapter examines a somewhat technical but common situation: where inputs declared as known (static) are actually partly considered as unknown (dynamic). Based on this, the chapter reviews the definition of program specialization.