DAT V Programmeringssprog (4): Partial Evaluation, Compiling, and Compiler Generation
Neil Deaton Jones · 2003
Contents 4 Partial Evaluation, Compiling, and Compiler Generation 2 4.1 Specialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4.2 The Futamura projections . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.2.1 Futamura projection 1: a partial evaluator can compile . . . . . . . 4 4.2.2 Futamura projection 2: a partial evaluator can generate a compiler . 5 4.2.3 Futamura projection 3: a partial evaluator can generate a compiler generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.3 Speedups from specialization . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.4 How specialization can be done . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.4.1 An example in more detail . . . . . . . . . . . . . . . . . . . . . . . 7 4.4.2 Annotated programs and o-line partial evaluation . . . . . . . . . . 8 4.5 The rst Futamura projection with unmix . . . . . . . . . . . . . . . . . . . 9 4.6 The second Futamura project