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.

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

Christian Wimmer is a researcher at Oracle Labs, working on the Maxine VM, the Graal compiler, the Truffle dynamic language infrastructure, as well as on other projects that involve dynamic compilation and optimizations. His research interests span from compilers, virtual machines, and secure systems to component-based software architectures. He received a Dr. techn. degree in computer science (advisor: Prof. Hanspeter Moessenboeck) from the Johannes Kepler University Linz, Austria. Before joining Oracle, he was a postdoctoral researcher at the Department of Computer Science of the University of California, Irvine, working with Prof. Michael Franz. Christian has been working on Truffle and Graal since the beginning of the projects.

Mon 13 Jun

Displayed time zone: Tijuana, Baja California change

13:30 - 15:00
One VM to Rule Them All, One VM to Bind ThemTutorials at Santa Cruz West
13:30
90m
Talk
One VM to Rule Them All, One VM to Bind Them
Tutorials
Christian Wimmer Oracle Labs
Link to publication
15:30 - 17:00
One VM to Rule Them All, One VM to Bind ThemTutorials at Santa Cruz West
15:30
90m
Talk
One VM to Rule Them All, One VM to Bind Them
Tutorials
Christian Wimmer Oracle Labs
Link to publication