Personal tools

Applications and libraries/Compilers and interpreters

From HaskellWiki

< Applications and libraries(Difference between revisions)
Jump to: navigation, search
(Added Chameleon, Data Field Haskell, Eden, Generic Haskell, PolyP, Helium, and Epigram)
Line 49: Line 49:
 
==Curry==
 
==Curry==
   
;[http://danae.uni-muenster.de/~lux/curry/ The M�nster Curry Compiler]
+
;[http://danae.uni-muenster.de/~lux/curry/ The M&uuml;nster Curry Compiler]
 
:A native code compiler for the declarative multi-paradigm language Curry, written in Haskell
 
:A native code compiler for the declarative multi-paradigm language Curry, written in Haskell
   
Line 63: Line 63:
 
;[http://www.cs.chalmers.se/~catarina/agda/ Agda]
 
;[http://www.cs.chalmers.se/~catarina/agda/ Agda]
 
:A Cayenne-like programming language and proof assistant.
 
:A Cayenne-like programming language and proof assistant.
  +
  +
==Chameleon==
  +
;[http://www.comp.nus.edu.sg/~sulzmann/chameleon/ Chameleon]
  +
:A Haskell-style language which implements the ideas described in a ``A Theory of Overloading``
  +
  +
==Data Field Haskell==
  +
;[http://www.mrtc.mdh.se/projects/DFH/ Data Field Haskell]
  +
:A dialect of the functional programming language Haskell that provides an instance of data fields
  +
  +
==Eden==
  +
;[http://www.mathematik.uni-marburg.de/~eden/ Eden]
  +
:A Haskell dialect for parallel programming
  +
  +
==Generic Haskell==
  +
;[http://generic-haskell.org/ Generic Haskell]
  +
:An extension of Haskell that supports generic programming
  +
  +
==PolyP==
  +
;[http://generic-haskell.org/ PolyP]
  +
:A polytypic programming language
  +
  +
==Helium==
  +
;[http://www.cs.uu.nl/helium/ Helium]
  +
:A Haskell subset for educational purposes
  +
  +
   
 
=Small languages=
 
=Small languages=
Line 85: Line 111:
 
;[http://www.cse.unsw.edu.au/~dons/code/lambdabot/Plugin/Lambda/ LMEngine]
 
;[http://www.cse.unsw.edu.au/~dons/code/lambdabot/Plugin/Lambda/ LMEngine]
 
:An implementation of the untyped lambda calculus
 
:An implementation of the untyped lambda calculus
  +
  +
==Epigram==
  +
  +
;[http://www.e-pig.org/ Epigram]
  +
:A dependently typed programming language and an interactive programming environment
  +
  +
   
 
{{LibrariesPage}}
 
{{LibrariesPage}}

Revision as of 20:52, 30 October 2006

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

Contents

1 Large languages

1.1 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
pH
A parallel version of Haskell from MIT.

1.2 Perl

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

1.3 Ruby

RType
RType is a Ruby interpreter written in Haskell

1.4 Scheme

Write Yourself a Scheme in 48 Hours
A Haskell Tutorial.

1.5 Emacs Lisp

Helisp
The beginnings of an Emacs lisp compiler/interpreter.

1.6 Epigram

Epigram
Epigram is a prototype dependently typed functional programming language

1.7 Curry

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

1.8 Bluespec

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

1.9 Cayenne

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

1.10 Agda

Agda
A Cayenne-like programming language and proof assistant.

1.11 Chameleon

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

1.12 Data Field Haskell

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

1.13 Eden

Eden
A Haskell dialect for parallel programming

1.14 Generic Haskell

Generic Haskell
An extension of Haskell that supports generic programming

1.15 PolyP

PolyP
A polytypic programming language

1.16 Helium

Helium
A Haskell subset for educational purposes


2 Small languages

2.1 Baskell

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

Unlambda.hs
An implementation of unlambda in Haskell

2.3 BF

BF.hs
An implementation of BF in Haskell


2.4 Untyped lambda calculus

LMEngine
An implementation of the untyped lambda calculus

2.5 Epigram

Epigram
A dependently typed programming language and an interactive programming environment


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