Difference between revisions of "Applications and libraries/Compilers and interpreters"
Jump to navigation
Jump to 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 |
+ | ;[http://danae.uni-muenster.de/~lux/curry/ The Mü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.
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
- pH
- A parallel version of Haskell from MIT.
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 Haskell Tutorial.
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.
Chameleon
- Chameleon
- A Haskell-style language which implements the ideas described in a ``A Theory of Overloading``
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
Generic Haskell
- Generic Haskell
- An extension of Haskell that supports generic programming
PolyP
- PolyP
- A polytypic programming language
Helium
- Helium
- A Haskell subset for educational purposes
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
Untyped lambda calculus
- LMEngine
- An implementation of the untyped lambda calculus
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 Applications and libraries.