The syntactic package
This library provides:
Generic representation and manipulation of abstract syntax
Composable AST representations (partly based on Data Types à la Carte [1])
A collection of common syntactic constructs, including variable binding constructs
Utilities for analyzing and transforming generic abstract syntax
Utilities for building extensible embedded languages based on generic syntax
For more information about the core functionality, see "A Generic Abstract Syntax Model for Embedded Languages" (ICFP 2012):
Paper: http://www.cse.chalmers.se/~emax/documents/axelsson2012generic.pdf
Slides: http://www.cse.chalmers.se/~emax/documents/axelsson2012generic-slides.pdf
For a practical example of how to use the library, see the proof-of-concept implementation Feldspar EDSL in the examples directory. (The real Feldspar [2] is also implemented using Syntactic.)
The maturity of this library varies between different modules. The core part (Language.Syntactic) is rather stable, but many of the other modules are in a much more experimental state.
[1] W. Swierstra. Data Types à la Carte. Journal of Functional Programming, 18(4):423-436, 2008, http://dx.doi.org/10.1017/S0956796808006758.
[2] http://hackage.haskell.org/package/feldspar-language
Properties
| Versions | 0.1, 0.2, 0.2.0.1, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.0.1, 1.2, 1.2.1, 1.3, 1.4, 1.5.1, 1.5.2, 1.6.1 |
|---|---|
| Dependencies | array, base (≥4 & <4.7), constraints, containers, data-hash, ghc-prim, mtl (2.*), transformers (≥0.2), tuple (≥0.2) |
| License | BSD3 |
| Copyright | Copyright (c) 2011-2012, Emil Axelsson |
| Author | Emil Axelsson |
| Maintainer | emax@chalmers.se |
| Category | Language |
| Home page | http://projects.haskell.org/syntactic/ |
| Source repository | darcs get http://projects.haskell.org/syntactic/ |
| Upload date | Thu Oct 18 12:51:54 UTC 2012 |
| Uploaded by | EmilAxelsson |
| Built on | ghc-7.6 |
Modules
- Data
- Language
- Language.Syntactic
- Language.Syntactic.Constraint
- Constructs
- Language.Syntactic.Constructs.Binding
- Language.Syntactic.Constructs.Condition
- Language.Syntactic.Constructs.Construct
- Language.Syntactic.Constructs.Decoration
- Language.Syntactic.Constructs.Identity
- Language.Syntactic.Constructs.Literal
- Language.Syntactic.Constructs.Monad
- Language.Syntactic.Constructs.Tuple
- Frontend
- Interpretation
- Sharing
- Language.Syntactic.Sugar
- Language.Syntactic.Syntax
- Language.Syntactic.Traversal
- Language.Syntactic
Downloads
- syntactic-1.4.tar.gz (Cabal source package)
- package description (included in the package)