GraalVM glossary

This page gives you a short list of words that might need additional explanations.

GraalVM - high performance embeddable polyglot virtual machine. When we talk about GraalVM it typically either refers to the whole project or to the virtual machine running your applications.

Graal (compiler) - the just-in-time compiler for Java bytecode and managed languages implemented with Truffle.

Truffle - framework for implementing managed languages. Truffle provides API to create abstract syntax trees (AST) for the semantics of your language. Graal compiler understands the Truffle trees and is able to optimize them very well.

Truffle API - API for building interpreters of managed languages.

Polyglot API - the api that allows interoperability between different languages supported by GraalVM.

Embedding API - API that one can use for embedding GraalVM in their native or Java applications.

Sulong - the LLVM bitcode interpreter built on the GraalVM; it allows one to execute native applications with GraalVM and is used as a mechanism to run native extensions for GraalVM languages like JavaScript or Ruby.

Graal.js - JavaScript engine and node.js implementation on GraalVM.

TruffleRuby - Ruby implementation on GraalVM.

FastR - GNU R implementation on GraalVM.

SubstrateVM - native virtual machine written in Java that is used when creating native images of your applications.