Invited Talk: A decade of Self-Optimizing Interpreters in GraalVM
summary
A decade of work shows interpreters written as self‑optimizing ASTs plus partial evaluation into a Java JIT (Graal) produce real compiler performance; the Truffle framework and an annotation DSL generate specializations and even bytecode interpreters automatically. Key claims: zero-overhead assumption checks let compiled code deopt back to the interpreter, and cross-language calls inline so there is no boxing across languages. Implementations (Sulong for LLVM bitcode, Espresso for Java bytecode, WebAssembly) run in production (Oracle DB, NetSuite) and ongoing work targets snapshotting, sandboxing, and hardware-backed isolation.
AI-written summary · about
chapters (17)
- 0:00Start
- 0:53AST interpreter node specialization
- 2:09Dynamic speculation and deoptimization
- 4:10Core primitives for the interpreter
- 7:46Going polyglot
- 8:51Composing languages
- 12:46Composing tools
- 13:58Asynchronous breakpoint installation
- 15:14Language-independent IDE support
- 15:59Polyglot live programming
- 17:33Static programming languages
- 19:13LLVM bytecode interpreter
- 21:34From research to production
- 25:19Regular expressions
- 29:30Operation DSL - what you write
- 31:17Towards a secure polyglot sandbox
- 33:26Summary
related talks
59mSupercompilation, Partial Evaluation, Futamura Projections and How GraalVM Will Save the World
31mSimplifying and Optimizing Life on the Edge with Graal
01h 19mTowards the tower of Babel: a Polyglot Language VM in Java
38mGraal
47mThe need for speed. What is GraalVM and how can it help you?
54mDeveloper's Introduction to GraalVM
47mPolyglot Done Right with GraalVM
50mOne VM to Rule Them All
