GrammarProducts

Grammar products and higher-dimensional grammars

https://github.com/choener/GrammarProducts

Latest on Hackage:0.2.0.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

GPL-3.0-only licensed by Christian Hoener zu Siederdissen, 2013-2019
Maintained by [email protected]

generalized Algebraic Dynamic Programming

An algebra of linear 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 (ANSI, Haskell module with signature and grammar).

The formal background can be found in two papers given in the README. The gADP homepage has further details, tutorials, examples.