Here you can find all publications related to GraalVM. If you are doing research related to GraalVM and want us to include your publication, please send us a pull request to add your paper.

Selected Papers

We recommend the following papers as a starting point for learning about Graal:

GraalVM Native Image uses a novel iterative application of points-to analysis and heap snapshotting, followed by ahead-of-time compilation with an optimizing compiler. Initialization code can run at build time, i.e., executables can be tailored to a particular application configuration. We recommend reading:

Peter Hofer, Codrut Stancu, Vojin Jovanovic, Peter Kessler, Christian Wimmer, Thomas Wuerthinger, Oleg Pliss, Paul Woegerer Initialize Once, Start Fast: Application Initialization at Build Time In Proceedings of the ACM on Programming Languages

Language implementations on GraalVM are based on the Truffle framework. User applications are transformed to an abstract syntax tree, which is then partially evaluated. If you want to learn more about how to build Truffle languages, how partial evaluation works, and how the Truffle framework allows you to guide the GraalVM compiler, we recommend reading:

Thomas Würthinger, Christian Wimmer, Christian Humer, Andreas Wöß, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, Matthias Grimmer Practical partial evaluation for high-performance dynamic language runtimes In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017)

Truffle language implementations abstract the differences between programming languages, which enables efficient cross-language interoperability. We recommend reading:

Matthias Grimmer, Chris Seaton, Roland Schatz, Würthinger, Hanspeter Mössenböck High-Performance Cross-Language Interoperability in a Multi-Language Runtime In Proceedings of the 11th Dynamic Language Symposium (DLS)

The GraalVM compiler ensures that the languages on top of the GraalVM run at full speed. The core of the compiler is its intermediate representation. We recommend reading:

Gilles Duboscq, Thomas Würthinger, Lukas Stadler, Christian Wimmer, Doug Simon, Hanspeter Mössenböck An intermediate representation for speculative optimizations in a dynamic compiler In Proceedings of the 7th ACM workshop on Virtual machines and intermediate languages (VMIL ‘13)

Speculative assumptions based on profiling information and deoptimizations allow GraalVM heavily optimize dynamically typed languages like JavaScript and ensure native speed. We recommend reading:

Gilles Duboscq, Thomas Würthinger, Hanspeter Mössenböck Speculation without regret: reducing deoptimization meta-data in the Graal compiler In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools (PPPJ ‘14)

A powerful escape analysis with scalar replacement ensures that all interpreter data structures are removed when optimizing a Truffle AST. We recommend reading:

Lukas Stadler, Thomas Würthinger, Hanspeter Mössenböck Partial Escape Analysis and Scalar Replacement for Java In Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO ‘14)

Full List of Papers









If you are interested in deeper collaboration with us, please send us an email.

Connect with us