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.
  • streamblocks-graalvm, a CAL Actor Language (Dataflow Programming) implementation
  • 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