Graal
...
The Graal publications and presentations are now at https://github.com/graalvm/graal-core/blob/master/docs/Publications.md
Truffle Tutorial
...
:
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 . 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 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.
Oracle Labs and 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 Several of them already exceed the best implementation of that language 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, ORPLDI 2016, June 13, 2016, Santa Barbara, CA
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
...