Applying Futamura Projections to Compose Languages and Tools in GraalVM (Invited Talk)
Most high-performance dynamic language virtual machines duplicate language semantics in the interpreter, compiler, and runtime system. This violates the principle to not repeat yourself. In contrast, in GraalVM, we define languages solely by writing an interpreter . To achieve high-performance we use an approach that was first described in 1971 by Y. Futamura , and is known as the first Futamura projection. The first Futamura projection allows languages to express powerful optimizations while keeping the compiler fully language agnostic. The runtime system composes interpreter nodes of multiple languages in one compilation unit to support polyglot interoperability and compilation . A language agnostic instrumentation mechanism enables us to attach cross-cutting concerns to polyglot applications with zero overhead . In this talk, I will introduce the theoretical concepts behind GraalVM and show how we build composable high-performance language implementations and tools. I will also preview some new ideas on how we want to apply the second Futamura projection in order to reach the compilation efficiency of specialized language-specific compilers.
 Würthinger, Thomas, et al. “Practical partial evaluation for high-performance dynamic language runtimes.” ACM SIGPLAN Notices. Vol. 52. No. 6. ACM, 2017.
 Futamura, Yoshihiko. “Partial evaluation of computation process–an approach to a compiler-compiler.” Higher-Order and Symbolic Computation 12.4 (1999): 381-391.
 Grimmer, Matthias, et al. “High-performance cross-language interoperability in a multi-language runtime.” ACM SIGPLAN Notices. Vol. 51. No. 2. ACM, 2015.
 Van De Vanter, Michael, et al. “Fast, Flexible, Polyglot Instrumentation Support for Debuggers and other Tools.” arXiv preprint arXiv:1803.10201 (2018).
Mon 14 Jan Times are displayed in time zone: Greenwich Mean Time : Belfast change
11:00 - 12:30
|Welcome to PEPM19|
|Applying Futamura Projections to Compose Languages and Tools in GraalVM (Invited Talk)|
Christian HumerOracle Labs, SwitzerlandFile Attached
|A Simpler Lambda Calculus|
Barry JayUniversity of Technology SydneyDOI