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.