Write a Blog >>
SPLASH 2019
Sun 20 - Fri 25 October 2019 Athens, Greece
Mon 21 Oct 2019 14:00 - 14:40 at Abbey - Session 3

Partial evaluation, based on the first Futamura projection, allows compiling language interpreters with given user programs to efficient target programs. GraalVM is an example system that implements this mechanism. It combines partial evaluation with profiling information and dynamic compilation, to transform interpreters into high-performance machine code at run time. However, partial evaluation is compile-time intensive, as it requires the abstract interpretation of interpreter implementations. Thus, optimizing partial evaluation is still subject to research to this day. We present an approach to speed up partial evaluation, by generating source code ahead of time, which performs partial evaluation specific to interpreter implementations. Generated code, when executed for a given user program at run time, directly emits partially evaluated interpreter instructions for language constructs it knows and sees in the program. This yields the target program faster than performing the first Futamura projection. The generated source code behaves similarly to a specialized partial evaluator deduced by performing the second Futamura projection, although no self-applying partial evaluator is involved during code generation.

Researcher and PhD student at the Johannes Kepler University in Linz, Austria.

Mon 21 Oct

splash-2019-Doctoral-Symposium
14:00 - 15:30: Doctoral Symposium - Session 3 at Abbey
splash-2019-Doctoral-Symposium14:00 - 14:40
Talk
Florian LatifiJohannes Kepler University Linz
DOI Pre-print
splash-2019-Doctoral-Symposium14:45 - 15:25
Talk
Gábor HorváthEötvös Loránd University
DOI Pre-print