Applications and libraries/Compilers and interpreters
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 compilers and interpreters implemented in Haskell.
- 1 Large languages
- 1.1 Haskell
- 1.2 Liskell
- 1.3 Perl
- 1.4 Python
- 1.5 Ruby
- 1.6 Flapjax
- 1.7 Scheme
- 1.8 Lisp
- 1.9 Emacs Lisp
- 1.10 Epigram
- 1.11 Curry
- 1.12 Bluespec
- 1.13 Cayenne
- 1.14 Agda
- 1.15 PolyP
- 1.16 Forth
- 1.17 Eiffel
- 1.18 Crouton
- 1.20 TCL
- 1.21 Smalltalk
- 1.22 Disciple
- 2 Small languages
- 3 Debuggers
- 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
- The purpose of the EHC project is to provide a description of a Haskell compiler which is as understandable as possible so it can be used for education as well as research.
- A parallel version of Haskell from MIT.
- A Haskell subset for educational purposes
- Generic Haskell
- An extension of Haskell that supports generic programming
Data Field Haskell
- Data Field Haskell
- A dialect of the functional programming language Haskell that provides an instance of data fields
- A Haskell dialect for parallel programming
- A Haskell-style language which implements the ideas described in a ``A Theory of Overloading``
CHR (Constraint Handling Rules)
- CHR (ps)
- A concurrent committed-choice constraint logic programming language, implemented using GHC's software transactional memory.
- Liskell is Haskell on the inside but looks like Lisp on the outside
- Pugs is an implementation of Perl 6, written in Haskell. It aims to implement the full Perl6 specification.
- Haspy is an implementation of Python in Haskell
- RType is a Ruby interpreter written in Haskell
- Flapjax is a language for functional reactive programming of AJAX web applications, whose compiler (source) is written in Haskell.
- Write Yourself a Scheme in 48 Hours
- A small Scheme interpreter
- A Lisp Interpreter In Haskell
- A small lisp interpreter written in Haskell
- The beginnings of an Emacs lisp compiler/interpreter.
- Epigram is a prototype dependently typed functional programming language
- The Münster Curry Compiler
- A native code compiler for the declarative multi-paradigm language Curry, written in Haskell
- A compiler for a hardware description language translating a Haskell-like (but with System Verilog syntax these days) language to Verilog.
- A compiler for a Haskell-like language with dependent types.
- A Cayenne-like programming language and proof assistant.
- A polytypic programming language
- Harrorth, a Forth interpreter
- Dynamic binding in Eiffel
- A model of dynamic binding in ECMA Eiffel, in Haskell
- Crouton is a small but fairly complete functional programming language for querying and transforming parsed manuscripts, such as the PPCME. It is intended as an alternative to Corpus Search, based on a different philosophy. It is written in (and largely based on) the very nice functional programming language Haskell using the Parsec library
- Hiccup is a minimalistic TCL interpreter. It tries to be relatively simple, relatively efficient, and mostly correct.
- Disciple is an explicitly lazy dialect of Haskell which supports destructive update, computational effects, type directed field projections and some other useful things.
- An interpreter for a small functional programming language. Supports strict and non-strict evaluation, and type inference. Useful for teaching purposes.
- LambdaPi, An Implementation of a Dependently Typed Lambda Calculus
- An implementation of Unlambda in Haskell
- An implementation of BF in Haskell
- An implementation of the untyped lambda calculus
QML, a functional quantum programming language
- QML: A Functional Quantum Programming Language project
- It is implemented in Haskell.
- For online material on quantum computing in general, see Quantum Computation course held by John Preskill.
HQL - HHM's Quantified Lambda
- Hernan's Quantified Lambda
- a small functional language, whose expressions can involve the use of quantifier operators
- Atom is a small HDL that compiles conditional term rewriting systems down to Verilog RTL.
AL (Assignment Language)
- It is used for teaching purposes in at the Technical University of Vienna.
- An interpreter implemented in Haskell is described in ALI - an AL Interpreter implemented in Haskell written by Peter Robinson.
- A language that uses whitespace characters as language elements and ignores all non-whitespace characters
- A declarative debugger for OBJ-like languages
- See also Debugging.
This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.