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 (in alphabetical order):

  • Enso, an open source, visual language for data science that lets you design, prototype and develop any application by connecting visual elements together.
  • 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. *
  • GraalWasm, a compliant WebAssembly implementation. *
  • grCUDA, a polyglot CUDA integration.
  • Pkl, a configuration as code language with rich validation and tooling.
  • 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.

* 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.
  • islisp-truffle, an implemention of the ISLISP 2007 standard.
  • 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