GrammarProducts-0.1.0.0: GrammarProducts.cabal
name: GrammarProducts
version: 0.1.0.0
author: Christian Hoener zu Siederdissen, 2013-2015
copyright: Christian Hoener zu Siederdissen, 2013-2015
homepage: http://www.bioinf.uni-leipzig.de/gADP/
maintainer: choener@bioinf.uni-leipzig.de
category: Formal Languages, Bioinformatics
license: GPL-3
license-file: LICENSE
build-type: Simple
stability: experimental
cabal-version: >= 1.10.0
tested-with: GHC == 7.8.4, GHC == 7.10.1
synopsis: Grammar products and higher-dimensional grammars
description:
An algebra of liner and context-free grammars.
.
This library provides the implementation of our theory of
algebraic operations over linear and context-free grammars.
Using algebraic operations, it is possible to construct complex
dynamic programming algorithms from simpler "atomic" grammars.
.
Our most important contribution is the definition of a product
of grammars which naturally leads to alignment-like algorithms
on multiple tapes.
.
An efficient implementation of the resulting grammars is
possible via the ADPfusion framework. The @FormalGrammars@
library provides the required "Template Haskell" machinery.
GramarProducts can be integrated as a plugin into the existing
transformation from DSL to ADPfusion. Haskell users can just
use the QQ function provided in the .QQ module.
.
Alternatively, the resulting grammars can also be
pretty-printed in various ways (LaTeX, ANSI, Haskell module
with signature and grammar).
.
.
.
Formal background can be found in two papers:
.
@
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>
@
.
and
.
@
Christian Höner zu Siederdissen, Ivo L. Hofacker, and Peter F. Stadler
How to Multiply Dynamic Programming Algorithms
Brazilian Symposium on Bioinformatics (BSB 2013)
Lecture Notes in Bioinformatics 8213, Springer, Heidelberg
@
.
Extra-Source-Files:
changelog.md
README.md
flag examples
description: build the examples (only Needleman-Wunsch for now)
default: False
manual: True
flag llvm
description: build using LLVM
default: False
manual: True
library
build-depends: base >= 4.7 && < 4.9
, ansi-wl-pprint >= 0.6 && < 0.7
, bytestring >= 0.10 && < 0.11
, containers >= 0.5 && < 0.6
, data-default >= 0.5 && < 0.6
, FormalGrammars == 0.2.0.*
, lens >= 4 && < 5
, newtype >= 0.2 && < 0.3
, parsers >= 0.12 && < 0.13
, semigroups >= 0.15 && < 0.17
, template-haskell >= 2 && < 3
, transformers >= 0.4 && < 0.5
, trifecta >= 1.5 && < 1.6
exposed-modules:
FormalLanguage.GrammarProduct
FormalLanguage.GrammarProduct.Op
FormalLanguage.GrammarProduct.Op.Add
FormalLanguage.GrammarProduct.Op.Chomsky
FormalLanguage.GrammarProduct.Op.Chomsky.Proof
FormalLanguage.GrammarProduct.Op.Common
FormalLanguage.GrammarProduct.Op.Greibach
FormalLanguage.GrammarProduct.Op.Greibach.Proof
FormalLanguage.GrammarProduct.Op.Linear
FormalLanguage.GrammarProduct.Op.Power
FormalLanguage.GrammarProduct.Op.Subtract
FormalLanguage.GrammarProduct.Parser
FormalLanguage.GrammarProduct.QQ
default-language:
Haskell2010
default-extensions: FlexibleContexts
, FlexibleInstances
, GeneralizedNewtypeDeriving
, LambdaCase
, NoMonomorphismRestriction
, OverloadedStrings
, ParallelListComp
, PatternGuards
, RankNTypes
, ScopedTypeVariables
, StandaloneDeriving
, TemplateHaskell
, UnicodeSyntax
ghc-options:
-O2
-funbox-strict-fields
-- With grammar products, we need a refined way of turning input source files
-- into LaTeX and Haskell modules.
--executable GrammarProductPP
-- build-depends: base >= 4.7 && < 4.9
-- , ansi-wl-pprint
-- , cmdargs >= 0.10 && < 0.11
-- , data-default
-- , FormalGrammars
-- , GrammarProducts
-- , HaTeX >= 3.16 && < 4
-- , lens
-- , semigroups
-- , transformers
-- , trifecta
-- hs-source-dirs:
-- src
-- main-is:
-- GramProd.hs
-- default-language:
-- Haskell2010
-- default-extensions:
-- ghc-options:
-- -O2
executable AlignGlobal
if flag(examples)
build-depends: base >= 4.7 && < 4.9
, ADPfusion == 0.4.0.*
, containers
, FormalGrammars
, GrammarProducts
, PrimitiveArray == 0.6.0.*
, template-haskell
, vector == 0.10.*
buildable: True
else
buildable: False
hs-source-dirs:
src
main-is:
AlignGlobal.hs
default-language:
Haskell2010
default-extensions: BangPatterns
, FlexibleContexts
, FlexibleInstances
, MultiParamTypeClasses
, QuasiQuotes
, TemplateHaskell
, TypeFamilies
, TypeOperators
ghc-options:
-O2
-fcpr-off
-funbox-strict-fields
-funfolding-use-threshold1000
-funfolding-keeness-factor1000
if flag(llvm)
ghc-options:
-fllvm
-optlo-O3
-fllvm-tbaa
source-repository head
type: git
location: git://github.com/choener/GrammarProducts