FormalGrammars: (Context-free) grammars in formal language theory
Context-free grammars in formal language theory are sets of production rules, non-terminal and terminal symbols. This library provides basic data types and functions to manipulate such grammars.
Grammars can be defined in a small domain-specific language that is very close to typical CFG notation. The DSL parser can easily be extended. Grammar products, for example, are implemented as a single additional sub-parser.
This library also provides the machinery that transforms an Inside grammar into the corresponding Outside grammar.
In addition, TemplateHaskell and QuasiQuoting functionality allow embedding thusly defined grammars in Haskell programs. ADPfusion then turns such a grammar into an efficient dynamic program. It is also possible to generate Haskell modules that contain the resulting grammar, signature and algebra product.
Alternatives are ansi- or LaTeX-based pretty-printing for users that want to implement their CFG in another language than Haskell.
Formal background can be found in these papers:
Christian Hoener zu Siederdissen Sneaking Around ConcatMap: Efficient Combinators for Dynamic Programming 2012. Proceedings of the 17th ACM SIGPLAN international conference on Functional programming http://doi.acm.org/10.1145/2364527.2364559 preprint: http://www.tbi.univie.ac.at/newpapers/pdfs/TBI-p-2012-2.pdf
Andrew Farmer, Christian Höner zu Siederdissen, and Andy Gill. The HERMIT in the stream: fusing stream fusion’s concatMap. 2014. Proceedings of the ACM SIGPLAN 2014 workshop on Partial evaluation and program manipulation. http://dl.acm.org/citation.cfm?doid=2543728.2543736
Christian Höner zu Siederdissen, Ivo L. Hofacker, and Peter F. Stadler. Product Grammars for Alignment and Folding. 2014. IEEE/ACM Transactions on Computational Biology and Bioinformatics. 99. http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6819790
Christian Höner zu Siederdissen, Sonja J. Prohaska, and Peter F. Stadler. Algebraic Dynamic Programming over General Data Structures. 2015. submitted.
[Skip to Readme]
Modules
[Index]
Flags
Manual Flags
Name | Description | Default |
---|---|---|
examples | build the examples | Disabled |
llvm | build using LLVM | Disabled |
debug | dump intermediate Core files | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- FormalGrammars-0.2.0.0.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.0.0.1, 0.0.0.2, 0.2.0.0, 0.2.1.0, 0.2.1.1, 0.3.0.0, 0.3.1.0, 0.3.1.1, 0.3.1.2, 0.4.0.0 |
---|---|
Change log | changelog.md |
Dependencies | ADPfusion (>=0.4.0 && <0.4.1), ansi-wl-pprint (>=0.6.7 && <0.6.8), base (>=4.7 && <4.9), bytestring (>=0.10 && <0.11), cmdargs (>=0.10 && <0.11), containers, data-default (>=0.5 && <0.6), FormalGrammars, HaTeX (>=3.16 && <3.17), lens (>=4 && <5), mtl (>=2 && <3), parsers (>=0.12 && <0.13), PrimitiveArray (>=0.6.0 && <0.6.1), semigroups (>=0.16 && <0.17), template-haskell, text (>=1 && <2), transformers (>=0.3 && <0.5), trifecta (>=1.5 && <1.6), unordered-containers (>=0.2 && <0.3), vector (>=0.10 && <0.11) [details] |
Tested with | ghc ==7.8.4, ghc ==7.10.1 |
License | GPL-3.0-only |
Copyright | Christian Hoener zu Siederdissen, 2013-2015 |
Author | Christian Hoener zu Siederdissen, 2013-2015 |
Maintainer | choener@bioinf.uni-leipzig.de |
Category | Formal Languages, Bioinformatics |
Home page | http://www.bioinf.uni-leipzig.de/Software/gADP/ |
Source repo | head: git clone git://github.com/choener/FormalGrammars |
Uploaded | by ChristianHoener at 2015-05-07T15:04:58Z |
Distributions | |
Reverse Dependencies | 9 direct, 1 indirect [details] |
Executables | NeedlemanWunschFG, NussinovFG, GrammarPP |
Downloads | 8714 total (12 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2015-05-07 [all 1 reports] |