Applications and libraries/Compilers and interpreters: Difference between revisions
Mark Wassell (talk | contribs) m (Added HJS) |
EndreyMark (talk | contribs) (→QML. a functional quantum programming language: QML: A Functional Quantum Programming Language] project. It is implemented in Haskell) |
||
Line 144: | Line 144: | ||
:An implementation of the untyped lambda calculus | :An implementation of the untyped lambda calculus | ||
===QML. a functional quantum programming language=== | |||
* [http://sneezy.cs.nott.ac.uk/QML/ QML: A Functional Quantum Programming Language] project. It is implemented in Haskell. | |||
For online material on quantum computing in general, see [http://www.theory.caltech.edu/people/preskill/ph229/ Quantum Computation] course held by [http://www.theory.caltech.edu/people/preskill/index.html John Preskill]. | |||
== Debuggers == | == Debuggers == | ||
Revision as of 02:44, 22 February 2007
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.
Large languages
Haskell
- GHC
- GHC, The Glasgow Haskell Compiler, is written in Haskell
- Yhc
- Yhc, The York Haskell Compiler, is written in Haskell
- Jhc
- Jhc is a Haskell compiler which aims to produce the most efficient programs possible via whole program analysis
- nhc98
- A compiler for Haskell 98, written in Haskell
- Ehc
- 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.
- pH
- A parallel version of Haskell from MIT.
Helium
- Helium
- A Haskell subset for educational purposes
Generic Haskell
- 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
Eden
- Eden
- A Haskell dialect for parallel programming
Chameleon
- Chameleon
- 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.
Perl
- Pugs
- Pugs is an implementation of Perl 6, written in Haskell. It aims to implement the full Perl6 specification.
Ruby
- RType
- RType is a Ruby interpreter written in Haskell
Scheme
- Write Yourself a Scheme in 48 Hours
- A small Scheme interpreter
Lisp
- A Lisp Interpreter In Haskell
- A small lisp interpreter written in Haskell
Emacs Lisp
- Helisp
- The beginnings of an Emacs lisp compiler/interpreter.
Epigram
- Epigram
- Epigram is a prototype dependently typed functional programming language
Curry
- The Münster Curry Compiler
- A native code compiler for the declarative multi-paradigm language Curry, written in Haskell
Bluespec
- Bluespec
- A compiler for a hardware description language translating a Haskell-like (but with System Verilog syntax these days) language to Verilog.
Cayenne
- Cayenne
- A compiler for a Haskell-like language with depedent types.
Agda
- Agda
- A Cayenne-like programming language and proof assistant.
PolyP
- PolyP
- A polytypic programming language
Forth
- Harrorth
- Harrorth, a Forth interpreter
Eiffel
- Dynamic binding in Eiffel
- A model of dynamic binding in ECMA Eiffel, in Haskell
Crouton
- Crouton
- 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
Javascript
- HJS
- HJS is a Javascript parser written in Haskell. Available from HackageDB.
Small languages
Baskell
- Baskell
- An interpreter for a small functional programming language. Supports strict and non-strict evaluation, and type inference. Useful for teaching purposes.
Unlambda
- Unlambda.hs
- An implementation of unlambda in Haskell
BF
- BF.hs
- An implementation of BF in Haskell
Lambda calculus
- 4 lambda calculus implementations
- With code, by Lennart Augustsson.
- LMEngine
- 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.
Debuggers
- Debussy
- A declarative debugger for OBJ-like languages
This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.