Partial evaluation as universal compiler tool: experiences from the SAC Eco system

  • Authors:
  • Sven-Bodo Scholz

  • Affiliations:
  • Heriot-Watt University, Edinburgh, United Kingdom

  • Venue:
  • Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

Compilation of high-level languages, be they domain-specific ones or general purpose ones, typically entails rather sophisticated program analyses to facilitate extensive program manipulations and target architecture-specific code generation. This talk shows how several of these techniques can benefit vastly from the use of partial evaluation techniques; it reflects some of the experiences gained in the context of the ecosystem of compiler tools around the programming language SaC (Single Assignment C). I describe how partial evaluation over the lifetime of the compiler development project has turned into a versatile tool that supports several aspects during the compilation, optimisation and code generation for SaC programs. At three concrete use scenarios in our toolchain: type inference, constraint resolution and application-specific code generation, I demonstrate the gains from partial evaluation. A discussion about limitations, further application potential and possible alternatives concludes the presentation.