packages feed

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