GraalVM team honored for accelerating dynamic language interpreter performance

January 5, 2023 | 2 minute read
Text Size 100%:

The paper “Self–Optimizing AST Interpreters” by Oracle’s Thomas Wuerthinger, Christian Wimmer, et al. (2012) was awarded the Dynamic Language Symposium (DLS)  “Most Notable Paper Award" at Splash 2022. The paper describes ground-breaking techniques that have had a lasting impact on language runtime development since its publication.  It describes how dynamic language performance can be improved by optimizing an interpreter at runtime.  These ideas underpin GraalVM’s Truffle Language Implementation framework, which is able to compile interpreted languages into native machine code to run with significant performance improvements. 

Why it is important?
The GraalVM team turned these concepts into a product to help multiple programming languages interoperate with minimal system overhead. Many developers use dynamic languages to increase productivity to respond to rapidly changing business requirements. However, while dynamic languages may enable developers to work faster, runtime performance may be slower. GraalVM’s Truffle framework incorporates the performance optimizations described in the paper that make it possible to deliver high-performance language implementations for JavaScript, Python, Ruby, R, and Java.
GraalVM’s polyglot support makes it possible to run multi-language programs where code and libraries written in one language can easily be called by code written in another language. For example, developers can easily use Python libraries for AI/ML applications within a Java application. In addition, the Oracle Database (starting with 21c) adopted GraalVM for its multi-language engine (MLE).  This allows JavaScript to run inside the database so that it’s possible to write stored procedures in JavaScript. GraalVM-based MLE also makes it easy for JavaScript developers to build Oracle APEX low-code web applications that leverage the power of the Oracle Database.

Adyen used GraalVM Enterprise  to develop C/C++ applications inside Java to mitigate security and stability concerns. Using GraalVM in this multi-language environment improves application reliability by preventing C++ program errors from crashing an entire server, which could affect thousands of payment processes.  With GraalVM, illegal C++ memory access errors that would normally result in a crash are caught and processed as standard Java exceptions to avoid a service outage.

Oracle’s GraalVM team continues to innovate on the concepts first presented in this paper and help improve dynamic language application performance. The optimizations from the team are included in GraalVM Community Edition or in the Enterprise Edition, available at no cost with Oracle Cloud Infrastructure (OCI).
•    Read the reprint of
Self-Optimizing AST Interpreters”  
•    Learn more about
GraalVM Enterprise
 ∗Oracle Labs, †Institute for System Software, Johannes Kepler University Linz, Austria)

Steve Quan

Previous Post

Java Card 3.1: Cryptographic Extensions

Nicolas Ponsini | 6 min read

Next Post

Changes in the Oracle JDK Installers (JDK 17, 11, and 8)

Aurelio Garcia-Ribeyro | 6 min read