This documentation is for an old GraalVM version. See the latest version.

Language Implementations

This page is intended to keep track of the growing number of language implementations and experiments on top of Truffle. The following language implementations exist already:

  • Espresso, a meta-circular Java bytecode interpreter. *
  • FastR, an implementation of GNU R. *
  • Graal.js, an ECMAScript 2020 compliant JavaScript implementation. *
  • GraalPy, an early-stage implementation of Python. *
  • grCUDA, a polyglot CUDA integration.
  • SimpleLanguage, a toy language implementation to demonstrate Truffle features.
  • SOMns, a Newspeak implementation for Concurrency Research.
  • Sulong, an LLVM bitcode interpreter. *
  • TRegex, a generic regular expression engine (internal, for use by other languages only). *
  • TruffleRuby, an implementation of Ruby. *
  • TruffleSOM, a SOM Smalltalk implementation.
  • TruffleSqueak, a Squeak/Smalltalk VM implementation and polyglot programming environment.
  • Yona, the reference implementation of a minimalistic, strongly and dynamically-typed, parallel and non-blocking, polyglot, strict, functional programming language.
  • Enso, an open source, visual language for data science that lets you design, prototype and develop any application by connecting visual elements together.

* Shipped as part of GraalVM.

Experiments #

  • BACIL, .NET CIL interpreter.
  • bf, an experimental Brainfuck programming language implementation.
  • brainfuck-jvm, another Brainfuck language implementation.
  • Cover, a Safe Subset of C++.
  • DynSem, a DSL for declarative specification of dynamic semantics of languages.
  • Heap Language, a tutorial showing the embedding of Truffle languages via interoperability.
  • hextruffe, an implementation of Hex.
  • LuaTruffle, an implementation of the Lua language.
  • Mozart-Graal, an implementation of the Oz programming language.
  • Mumbler, an experimental Lisp programming language.
  • PorcE, an Orc language implementation.
  • ProloGraal a Prolog language implementation supporting interoperability.
  • PureScript, a small, strongly-typed programming language.
  • Reactive Ruby, TruffleRuby meets Reactive Programming.
  • shen-truffle, a port of the Shen programming language.
  • TruffleBF, a completed Brainfuck programming language implementation, compiled to native-image.
  • TruffleMATE, a Smalltalk with a completely reified runtime system.
  • TrufflePascal, a Pascal interpreter.
  • ZipPy, a Python implementation.

Submit a pull request to add/remove from this list.

Connect with us