Language Implementations

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

  • FastR, an implementation of GNU R. *
  • Graal.js, an ECMAScript 2020 compliant JavaScript implementation. *
  • Graal.Python, an early-stage implementation of Python. *
  • 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 dynamically typed, parallel and non-blocking, polyglot, strict, functional programming language.

* Shipped as part of GraalVM.

Experiments #

  • 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 tutorial showing 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.
  • 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.