Gremlin is a domain specific language for traversing graphs. Graphs are data structures where there exists vertices (i.e. dots, nodes) and edges (i.e. lines, arcs). Gremlin was designed to work with a type of graph called a property graph. Property graphs are defined, in detail, in the Defining a Property Graph section of this documentation. By using Gremlin, it is possible make use of a REPL (command line/console) to interactively traverse a graph.


Compiler for the Tiger Programming Language. From the reference manual on Tiger: “This document describes the Tiger language defined in Andrew Appel’s book Modern Compiler Implementation in Java (Cambridge University Press, 1998). The Tiger language is a small, imperative language with integer and string variables, arrays, records, and nested functions. Its syntax resembles some functional languages.”


Frege is a non-strict, pure functional programming language in the spirit of Haskell. It enjoys a strong static type system with type inference. Higher rank types are supported, though type annotations are required for that. Frege programs are compiled to Java and run in a JVM. Existing Java Classes and Methods can be used seamlessly from Frege. Frege is not a Haskell dialect, though some effort has been expended to make it look and feel like so.