syntactic: Generic abstract syntax, and utilities for embedded languages
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.
Modules
[Index]
- 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.12.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 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, 1.7.1, 1.8, 1.9, 1.10, 1.11, 1.12.1, 1.13, 1.14, 1.15, 1.15.1, 1.16, 1.16.1, 1.16.2, 1.17, 2.0, 2.1, 3.0, 3.1, 3.2, 3.2.1, 3.3, 3.4, 3.5, 3.6, 3.6.1, 3.6.2, 3.6.3, 3.7, 3.7.1, 3.8, 3.8.1, 3.8.2, 3.8.3, 3.8.4 |
---|---|
Dependencies | array, base (>=4 && <4.8), constraints, containers, data-hash, ghc-prim, mtl (>=2 && <3), template-haskell, transformers (>=0.2), tree-view, tuple (>=0.2) [details] |
Tested with | ghc ==7.6.2, ghc ==7.8.2 |
License | BSD-3-Clause |
Copyright | Copyright (c) 2011-2014, Emil Axelsson |
Author | Emil Axelsson |
Maintainer | emax@chalmers.se |
Category | Language |
Home page | https://github.com/emilaxelsson/syntactic |
Bug tracker | https://github.com/emilaxelsson/syntactic/issues |
Source repo | head: git clone https://github.com/emilaxelsson/syntactic |
Uploaded | by EmilAxelsson at 2014-04-17T13:49:43Z |
Distributions | |
Reverse Dependencies | 9 direct, 2 indirect [details] |
Downloads | 37453 total (159 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Successful builds reported [all 1 reports] |