Academic Publications

This page describes various presentations and publications related to the Graal compiler and Truffle that were published by Oracle Labs and its academic collaborators.

Truffle

GraalVM provides the Truffle framework for implementing a managed language in Java, improving language performance while enabling integration with other Truffle languages and providing tooling support – all of that by just implementing an abstract syntax tree (AST) interpreter in Java. Truffle applies AST specialization during interpretation, which enables partial evaluation to create highly optimized native code without the need to write a compiler specifically for a language. The Java VM contributes high-performance garbage collection, threads, and parallelism support.

Oracle Labs and external research groups have implemented a variety of programming languages on top of Truffle, including JavaScript, Python, Ruby, R, Smalltalk, and others. Several of them already exceed the best implementation of that language that existed before.

We recommend watching a presentation on Dynamic Metacompilation with Truffle by Christian Humer, and checking academic publications on Truffle, of your interest, listed on this page. You can also find the extensive Truffle documentation on the website.

Graal Compiler

The Graal compiler is an optimizing dynamic compiler written in Java. Because it is highly configurable and extensible, it delivers excellent peak performance on many benchmarks for a diverse set of managed languages including Java and JavaScript. This brings compiler research to a new level: researchers can evaluate new compiler optimizations immediately on many languages. If you are a language implementer who is curious how modern VMs like the Java HotSpot VM optimizes your code, you can find answers to that in the presentation by Doug Simon Looking at the GraalVM compiler.

The presentation covers the following topics:

  • How to build a GraalVM distribution from the sources
  • Ways the compiler uses Java language features to simplify the development: annotations, unit tests, and benchmarks for individual compiler optimizations
  • What main classes one should look at the GraalVM project
  • Compilation wrappers and so on

Find below also the academic publications on the compiler of your interest, or see the Graal compiler documentation on the website.

Academic Publications

2024

2023

2022

2021

2020

  • Fabio Niephaus, Patrick Rein, Jakob Edding, Jonas Hering, Bastian König, Kolya Opahle, Nico Scordialo, Robert Hirschfeld Example-based Live Programming for Everyone: Building Language-agnostic Tools for Live Programming With LSP and GraalVM In Proceedings of the ACM Symposium for New Ideas, New Paradigms, and Reflections on Everything to do with Programming and Software (Onward! 2020)

  • Jacob Kreindl, Daniele Bonetta, Lukas Stadler, David Leopoldseder, Hanspeter Moessenboeck Multi-language Dynamic Taint Analysis in a Polyglot Virtual Machine In Proceedings of the 17th International Conference on Managed Programming Languages and Runtimes (MPLR 2020)

  • Alexander Riese, Fabio Niephaus, Tim Felgentreff, Robert Hirschfeld User-Defined Interface Mappings for the GraalVM In Proceedings of the Interconnecting Code Workshop (ICW) 2020, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›)

  • Jan Ehmueller, Alexander Riese, Hendrik Tjabben, Fabio Niephaus, Robert Hirschfeld Polyglot Code Finder In Proceedings of the Programming Experience 2020 (PX/20) Workshop, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›)

  • Johannes Henning, Tim Felgentreff, Fabio Niephaus, Robert Hirschfeld Toward Presizing and Pretransitioning Strategies for GraalPython In Proceedings of the Workshop on Modern Language Runtimes, Ecosystems, and VMs (MoreVMs) 2020, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›)

2019

2018

2017

2016

2015

2014

2013

  • Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, Mario Wolczko One VM to Rule Them All In Proceedings of Onward!. Describes the vision of the Truffle approach, and the full system stack including the interpreter and dynamic compiler.

  • Matthias Grimmer, Manuel Rigger, Lukas Stadler, Roland Schatz, Hanspeter Moessenboeck An efficient native function interface for Java In Proceedings of the International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools. (PPPJ).

  • Matthias Grimmer Runtime Environment for the Truffle/C VM Master’s thesis, Johannes Kepler University Linz, November 2013.

2012

  • Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer Self-Optimizing AST Interpreters In Proceedings of the Dynamic Languages Symposium (DLS). Describes the design of self-optimizing and self-specializing interpreter, and the application to JavaScript.

GraalVM Compiler Papers

2023

2022

2021

2020

2019

2018

2016

2015

2014

2013

2012

Connect with us