Graal Papers
The Graal publications and presentations are now at https://github.com/graalvm/graal-core/blob/master/docs/Publications.md
Truffle Tutorial
This tutorial presents Truffle, a novel open-source framework for implementing managed languages in Java. The language implementer writes an AST interpreter. It uses the Truffle framework that allows tree rewriting during AST interpretation. Tree rewrites incorporate type feedback and other profiling information into the tree, thus specializing the tree and augmenting it with run-time information. When the tree reaches a stable state, partial evaluation compiles the tree into optimized machine code. The partial evaluation is done by Graal, a just-in-time compiler for the Java HotSpot VM.
Oracle Labs as well as external research groups have implemented a variety of programming languages on top of Truffle, including JavaScript, Ruby, R, Python, and Smalltalk. They are competitive with or even faster than the best implementations that existed before.
The recording from SPLASH 2014 is newer than the CGO 2014, but shorter (1 hour instead of 3 hours). The CGO 2014 version has more live programming and covers more topics.
SPLASH 2014, October 20-24, Portland, OR
Video recording
Download slides
CGO 2014, February 15-19, Orlando, FL
Video recording: Part 1, Part 2
Download slides
Truffle Presentations
- JVM Language Summit 2014, July 28-30, Santa Clara, CA: Debugging at Full Speed: Instrumenting Truffle-implemented Programs
- JVM Language Summit 2013, July 29-31, Santa Clara, CA: One VM to Rule Them All
Video recording
Download slides - SPLASH 2012, October 19-26, Tucson AZ: Truffle: A Self-Optimizing Runtime System.
- doi:10.1145/2384716.2384723
Download slides
Download abstract
Truffle Papers
- 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
- Gülfem Savrun-Yeniçeri, Michael Van De Vanter, Per Larsen, Stefan Brunthaler, and Michael Franz, An Efficient and Generic Event-based Profiler Framework for Dynamic Languages
In the 2015 International Conference on Principles and Practices of Programming on the Java Platform: virtual machines, languages, and tools (PPPJ2015), September 9, 2015. - Michael Van De Vanter, Building Debuggers and Other Tools: We Can "Have it All" (Position Paper)
In the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS 2015), July 6, 2015.
- Matthias Grimmer: High-performance language interoperability in multi-language runtimes.
In Proceedings of the companion publication of the 2014 ACM SIGPLAN conference on Systems, Programming, and Applications: Software for Humanity (SPLASH'14), 2014
Download paper
- Matthias Grimmer, Manuel Rigger, Roland Schatz, Lukas Stadler, Hanspeter Mössenböck: Truffle C: Dynamic Execution of C on the Java Virtual Machine.
In Proceedings of the Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'14), 2014
Download paper - Christian Humer, Christian Wimmer, Christian Wirth, Andreas Wöss, Thomas Würthinger: A Domain-Specific Language for Building Self-Optimizing AST Interpreters. In Proceedings of the International Conference on Generative Programming: Concepts and Experiences(GPCE'14), 2014
Download paper - Andreas Wöss, Christian Wirth, Daniele Bonetta, Chris Seaton, Christian Humer, Hanspeter Mössenböck: An Object Storage Model for the Truffle Language Implementation Framework.
In Proceedings of Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'14), 2014
Download paper - Matthias Grimmer, Thomas Würthinger, Andreas Wöss, Hanspeter Mössenböck: An Efficient Approach to Access Native Binary Data from JavaScript
In Proceedings of the 9th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS'2014), 2014
Download paper - Thomas Würthinger, Christian Wimmer, Andreas Wöss, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, Mario Wolczko: One VM to Rule Them All. In Proceedings of Onward!, ACM Press, 2013.
doi:10.1145/2509578.2509581
Download paper
Describes the vision of the Truffle approach, and the full system stack including the interpreter and dynamic compiler. - Chris Seaton, Michael Van De Vanter, and Michael Haupt: Debugging at full speed. In Proceedings of the 8th Workshop on Dynamic Languages and Applications (DYLA), 2014.
Download paper - Matthias Grimmer, Manuel Rigger, Lukas Stadler, Roland Schatz, Hanspeter Mössenböck: 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'13), 2013
Download paper - Matthias Grimmer: Runtime Environment for the Truffle/C VM
Master's thesis, Johannes Kepler University Linz, November 2013
Download - Thomas Würthinger, Andreas Wöss, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer: Self-Optimizing AST Interpreters. In Proceedings of the Dynamic Languages Symposium, pages 73-82. ACM Press, 2012. doi:10.1145/2384577.2384587
Download paper
Describes the design of self-optimizing and self-specializing interpreter, and the application to JavaScript.