The Graal publications and presentations are now at https://github.com/graalvm/graal-core/blob/master/docs/Publications.md
Forget “this language is fast”, “this language has the libraries I need”, and “this language has the tool support I need”. The Truffle framework for implementing managed languages in Java gives you native performance, multi-language integration with all other Truffle languages, and tool 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.
This tutorial is both for newcomers who want to learn the basic principles of Truffle, and for people with Truffle experience who want to learn about recently added features. It presents the basic principles of the partial evaluation used by Truffle and the Truffle DSL used for type specializations, as well as features that were added recently such as the language-agnostic object model, language integration, and debugging support.
- 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
- SPLASH 2012, October 19-26, Tucson AZ: Truffle: A Self-Optimizing Runtime System. doi:10.1145/2384716.2384723
- 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
- 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
- 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
- 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
In Proceedings of the 9th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS'2014), 2014
- 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.
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.
- 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
- Matthias Grimmer: Runtime Environment for the Truffle/C VM
Master's thesis, Johannes Kepler University Linz, November 2013
- 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