Towards the tower of Babel: a Polyglot Language VM in Java
summary
GraalVM + Truffle lets language implementations be written as interpreters and then partially evaluate those interpreters into optimized code using Futamura partial evaluation, avoiding duplicate compiler/runtime work. It runs JavaScript, Python, Ruby, R, LLVM bitcode (Sulong), WebAssembly and a new Espresso JVM, provides a language-agnostic interop protocol and instrumentation so debuggers and profilers span languages, and offers Native Image auxiliary images and sandboxing. Peak throughput approaches best-in-class (about within 2x) while startup/warmup is currently ~1–5x slower.
AI-written summary · about
chapters (6)
- 0:00Start
- 2:23Towards the Tower of Babel
- 18:16Truffle Interpreter Example
- 23:13Truffle Interpreter Compilation
- 48:59Interoperability Protocol
- 54:06Polyglot Instrumentation using Node Tagging
related talks
52mPolyglot on the JVM with Graal: One VM for Java, node.js, Ruby, R, and C++!
47mPolyglot Done Right with GraalVM
50mOne VM to Rule Them All
20mGraalVM: Run Programs Faster Anywhere
59mGraalVM: Run Programs Faster Anywhere
54mDeveloper's Introduction to GraalVM
52mGraalVM, the polyglot virtual machine
47mThe need for speed. What is GraalVM and how can it help you?
