Metacompilation, partial evaluation, the Futamura projections, and how GraalVM will save the world

Day 2 /  / Track 1  /  RU / Hardcore. Really hard and demanding talk, you'll understand only if you're an experienced engineer.

When you were a kid, didn't you want to write your own compiler, or game engine, or something like that?

In this session, we'll talk about Truffle — framework for creating programming languages on the basis of GraalVM. You only need to describe the language semantics in the form of interpreter, and presto, in a couple of minutes it'll warm up and start working with a tremendous speed. We'll explore how Truffle works, what is partial evaluation of programs. We'll see what other optimizations Truffle do for languages and why it works best with the Graal compiler.

It doesn't mean that every one of us has to write their own programming language or compiler, but the details of Truffle's work from this talk can help you better understand how languages supported by GraalVM — JavaScript, Ruby, R, Python — work and how they should be used.

Oleg Šelajev

Oleg Šelajev is a developer advocate for the GraalVM project at Oracle Labs, which aims to make programs run faster and developers more productive. He helps to organize VirtualJUG, the online Java User Group, and a GDG chapter in Tartu, Estonia. Became a Java Champion in 2017. Loves pizza and playing chess. Favorite languages: Java, JavaScript, and Clojure.