Personal tools

Applications and libraries/Compilers and interpreters

From HaskellWiki

< Applications and libraries(Difference between revisions)
Jump to: navigation, search

Revision as of 02:13, 18 November 2006

Haskell, with its support for pattern matching on data structures, generic structure traversals, and expressive type system, is popular for implementing compilers and interpreters. Here's a selection of languages implemented in Haskell.


1 Large languages

1.1 Haskell

GHC, The Glasgow Haskell Compiler, is written in Haskell
Yhc, The York Haskell Compiler, is written in Haskell
Jhc is a Haskell compiler which aims to produce the most efficient programs possible via whole program analysis
A compiler for Haskell 98, written in Haskell
A parallel version of Haskell from MIT.

1.1.1 Helium

A Haskell subset for educational purposes

1.1.2 Generic Haskell

Generic Haskell
An extension of Haskell that supports generic programming

1.1.3 Data Field Haskell

Data Field Haskell
A dialect of the functional programming language Haskell that provides an instance of data fields

1.1.4 Eden

A Haskell dialect for parallel programming

1.1.5 Chameleon

A Haskell-style language which implements the ideas described in a ``A Theory of Overloading``

1.2 Perl

Pugs is an implementation of Perl 6, written in Haskell. It aims to implement the full Perl6 specification.

1.3 Ruby

RType is a Ruby interpreter written in Haskell

1.4 Scheme

Write Yourself a Scheme in 48 Hours
A small Scheme interpreter

1.5 Lisp

A Lisp Interpreter In Haskell
A small lisp interpreter written in Haskell

1.6 Emacs Lisp

The beginnings of an Emacs lisp compiler/interpreter.

1.7 Epigram

Epigram is a prototype dependently typed functional programming language

1.8 Curry

The Münster Curry Compiler
A native code compiler for the declarative multi-paradigm language Curry, written in Haskell

1.9 Bluespec

A compiler for a hardware description language translating a Haskell-like (but with System Verilog syntax these days) language to Verilog.

1.10 Cayenne

A compiler for a Haskell-like language with depedent types.

1.11 Agda

A Cayenne-like programming language and proof assistant.

1.12 PolyP

A polytypic programming language

1.13 Forth

Harrorth, a Forth interpreter

1.14 Eiffel

Dynamic binding in Eiffel
A model of dynamic binding in ECMA Eiffel, in Haskell

2 Small languages

2.1 Baskell

An interpreter for a small functional programming language. Supports strict and non-strict evaluation, and type inference. Useful for teaching purposes.

2.2 Unlambda

An implementation of unlambda in Haskell

2.3 BF

An implementation of BF in Haskell

2.4 Lambda calculus

4 lambda calculus implementations
With code, by Lennart Augustsson.
An implementation of the untyped lambda calculus

This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.