Authors: G. Sauthoff, T. Gatter
Bellman's GAP which is a programming system for writing dynamic programming algorithms over sequential data. It is the second
generation implementation of the algebraic dynamic programming framework (ADP).

Bellman's GAP

The system includes the multi-paradigm language (GAP-L), its compiler (GAP-C)
and functional modules (GAP-M) . GAP-L includes declarative constructs, e.g.
tree grammars to model the search space, and imperative constructs for programming
advanced scoring functions. The syntax of GAP-L is similar to C/Java to lower usage
barriers. GAP-C translates the high-level and index-free GAP-L programs into
efficient C++-Code, which is competitive with handwritten code. It includes a
novel table design optimization algorithm, support for dynamic programming (DP)
over multiple sequences (multi-track DP), sampling, optional top-down evaluation,
various backtracing schemes etc. GAP-M includes modules for use in GAP-L programs.
Examples are efficient representations of classification data types and sampling
as well as filter helper functions.

Tree grammars (G) specify the search space, algebras (E) evaluate candidate terms
and signatures (��) declare the function reservoir which tree grammars and algebras
are using. Tabulation is specified through non-terminal annotation in tree grammars.
The use of tree grammars for search space description eliminates subscripts from the
algorithm description, i.e. a major source of programming errors in developing DP
algorithms.

Algebras are building blocks to wrap different scoring schemes or optimization s
trategies (h). With product operations they can be combined to more powerful analyses.

Fold-Grammars

Dynamic programming is ubiquitous in bioinformatics. Developing and implementing non-trivial
dynamic programming algorithms is often error prone and tedious. Bellman's GAP is a new
programming system, designed to ease the development of bioinformatics tools based on the
dynamic programming technique.
Fold-Grammars is
repository for thermodynamic RNA folding with Bellman's GAP.