Additional Resources


GraalVM.org

If you want to get in contact with the team developing Graal and the Polyglot engine, read the documentation or see additional examples, head to the GraalVM.org project page.


Graal and Polyglot Language Projects

Our open-source artifacts are available on GitHub, see https://github.com/graalvm.

Several open-source language implementations are based on Graal, using the Polyglot engine:


Publications


On Graal

  • Aleksandar Prokopec, David Leopoldseder, Gilles Duboscq, and Thomas Würthinger. 2017. Making collection operations optimal with aggressive JIT compilation. In Proceedings of the 8th ACM SIGPLAN International Symposium on Scala (SCALA 2017). ACM, New York, NY, USA, 29-40.
  • Josef Eisl, Matthias Grimmer, Doug Simon, Thomas Würthinger, and Hanspeter Mössenböck: Trace-based Register Allocation in a JIT Compiler, PPPJ '16 Proceedings of the 2016 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, 2016
  • Gilles Duboscq, Thomas Würthinger, Hanspeter Mössenböck: Speculation Without Regret: Reducing Deoptimization Meta-data in the Graal compiler accepted for the Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'14), September 23-26, 2014, Cracow, Poland
  • Lukas Stadler: Partial Escape Analysis and Scalar Replacement for Java PhD thesis, Johannes Kepler University Linz, May 2014
  • Lukas Stadler, Thomas Würthinger, Hanspeter Mössenböck: Partial Escape Analysis and Scalar Replacement for Java Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO'14), February 15-19, 2014, Orlando, Florida, USA
  • 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 Proceedings of the 7th workshop on Virtual Machines and Intermediate Languages (VMIL'13), as part of the 4th Annual Splash Conference, October 26-31, 2013, Indianapolis, Indiana, USA
  • Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Würthinger, Doug Simon: An Experimental Study of the Influence of Dynamic Compiler Optimizations on Scala Performance Proceedings of the 4th Workshop on Scala (SCALA '13), July 2, 2013, Montpellier, France
  • Gilles Duboscq, Lukas Stadler, Thomas Würthinger, Doug Simon, Christian Wimmer, Hanspeter Mössenböck: Graal IR: An Extensible Declarative Intermediate Representation Proceedings of the 2nd Asia-Pacific Programming Languages and Compilers Workshop, as part of the 10th Annual International Symposium on Code Generation and Optimization, February 23-27, 2013, Shenzhen, China
  • Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Würthinger: Compilation Queuing and Graph Caching for Dynamic Compilers Proceedings of the 6th workshop on Virtual Machines and Intermediate Languages (VMIL'12), as part of the 3rd Annual Splash Conference, October 19-26, 2012, Tucson, Arizona, USA, pp.45-53

On the Polyglot Engine, Language Interoperability, and the Truffle API

  • 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. PLDI 2017
  • Manuel Rigger, Rene Mayrhofer, Roland Schatz, Matthias Grimmer, Hanspeter Mössenböck: Introspection for C and its Applications to Library Robustness. In The Art, Science, and Engineering of Programming, 2018, Vol. 2, Issue 2, Article 4
  • Manuel Rigger, Roland Schatz, Rene Mayrhofer, Matthias Grimmer, Hanspeter Mössenböck: Sulong, and Thanks For All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution Model Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '18), Williamsburg, VA, USA, March 24 - 28, 2018.
  • Daniele Bonetta and Matthias Brantner. 2017. FAD.js: fast JSON data access using JIT-based speculative optimizations. Proc. VLDB Endow. 10, 12 (August 2017), 1778-1789.
  • Manuel Rigger, Roland Schatz, Matthias Grimmer, and Hanspeter Mössenböck. 2017. Lenient Execution of C on a Java Virtual Machine: or: How I Learned to Stop Worrying and Run the Code. In Proceedings of the 14th International Conference on Managed Languages and Runtimes (ManLang 2017). ACM, New York, NY, USA, 35-47
  • Matthias Grimmer, Stefan Marr, Mario Kahlhofer, Christian Wimmer, Thomas Würthinger, and Hanspeter Mössenböck: Applying Optimizations for Dynamically-typed Languages to Java. In Proceedings of the 14th International Conference on Managed Languages and Runtimes (ManLang 2017). ACM, New York, NY, USA, 12-22.
  • Lukas Stadler, Adam Welc, Christian Humer, Mick Jordan: Optimizing R language execution via aggressive speculation. DLS 2016
  • Manuel Rigger, Matthias Grimmer, and Hanspeter Mössenböck: Sulong - Execution of LLVM-Based Languages on the JVM, ICOOOLPS'16 Proceedings of the 11th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, 2016
  • Benoit Daloze, Stefan Marr, Daniele Bonetta, Hanspeter Mössenböck: Efficient and Thread-Safe Objects for Dynamically-Typed Languages. OOPSLA 2016
  • Benoit Daloze, Chris Seaton, Daniele Bonetta, Hanspeter Mössenböck: Techniques and Applications for Guest-Language Safepoints. ICOOOLPS 2015
  • Matthias Grimmer, Chris Seaton, Roland Schatz, Thomas Würthinger, Hanspeter Mössenböck: High-performance cross-language interoperability in a multi-language runtime, DLS 2015 Proceedings of the 11th Symposium on Dynamic Languages, 2015
  • Matthias Grimmer, Roland Schatz, Chris Seaton, Thomas Würthinger, Hanspeter Mössenböck: Memory-safe Execution of C on a Java VM, PLAS'15 Proceedings of the 10th ACM Workshop on Programming Languages and Analysis for Security, 2015
  • Matthias Grimmer, Chris Seaton, Thomas Würthinger, Hanspeter Mössenböck: Dynamically Composing Languages in a Modular Way: Supporting C Extensions for Dynamic Languages. accepted for publication at the 14th International Conference on Modularity, 2015, Fort Collins, Colorado, USA.
  • Matthias Grimmer, Manuel Rigger, Roland Schatz, Lukas Stadler, Hanspeter Mössenböck: Truffle C: Dynamic Execution of C on the Java Virtual Machine. accepted for the Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'14), September 23-26, 2014, Cracow, Poland.
  • Andreas Wöß, Christian Wirth, Daniele Bonetta, Chris Seaton, Christian Humer, Hanspeter Mössenböck: An Object Storage Model for the Truffle Language Implementation Framework. accepted for the Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'14), September 23-26, 2014, Cracow, Poland.
  • Christian Humer, Christian Wimmer, Christian Wirth, Andreas Wöß, and Thomas Würthinger: A domain-specific language for building self-optimizing AST interpreters. In Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences (GPCE 2014), September 15-16, 2014, Västeros, Sweden.
  • Matthias Grimmer, Thomas Würthinger, Andreas Wöß, Hanspeter Mössenböck: An Efficient Approach to Access Native Binary Data from JavaScript. accepted for the 9th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS'2014), July 28, 2014, Uppsala, Sweden.
  • 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 Proceedings of the Onward! Conference, October 26-31, 2013, Indianapolis, USA
  • Matthias Grimmer, Manuel Rigger, Lukas Stadler, Roland Schatz, Hanspeter Mössenböck: An efficient native function interface for Java Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools. (PPPJ'13) Pages 35-44
  • Matthias Grimmer: Runtime Environment for the Truffle/C VM Master's thesis, Johannes Kepler University Linz, November 2013
  • Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Wimmer: Self-Optimizing AST Interpreters Proceedings of the 7th Symposium on Dynamic Languages (DLS'12), pages 73-82. ACM Press, 2012.

 

On Truffle Instrumentation and Debugging

  • Mohammad R. Azadmanesh, Michael L. Van De Vanter, Matthias Hauswirth: Language-Independent Information Flow Tracking Engine for Program Comprehension Tools. IEEE/ACM 25th International Conference on Program Comprehension (ICPC), 2017
  • Michael Van De Vanter: Building Reusable, Low-overhead Tooling Support into a High Performance Polyglot VM; MoreVMs 2017
  • Michael Van De Vanter, "Building Debuggers and Other Tools: We Can “Have it All”" , The 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS 2015), Prague, Czech Republic, July 6 2015
  • Chris Seaton, Michael L. Van De Vanter, and Michael Haupt. 2014. Debugging at Full Speed. Workshop on Dynamic Languages and Applications, Edinburgh, (June 2014)