Dyna: A Declarative Language for Implementing Dynamic Programs. We present the first version of a new declarative programming language. Dyna has many uses but was designed especially for rapid development of new statistical NLP systems. A Dyna program is a small set of equations, resembling Prolog inference rules, that specify the abstract structure of a dynamic programming algorithm. It compiles into efficient, portable, C++ classes that can be easily invoked from a larger application. By default, these classes run a generalization of agenda-based parsing, prioritizing the partial parses by some figure of merit. The classes can also perform an exact backward (outside) pass in the service of parameter training. The compiler already knows several implementation tricks, algorithmic transforms, and numerical optimization techniques. It will acquire more over time: we intend for it to generalize and encapsulate best practices, and serve as a testbed for new practices. Dyna is now being used for parsing, machine translation, morphological analysis, grammar induction, and finite-state modeling.
Keywords for this software
References in zbMATH (referenced in 11 articles )
Showing results 1 to 11 of 11.
- Alexander M. Rush: Torch-Struct: Deep Structured Prediction Library (2020) arXiv
- Belle, Vaishak; De Raedt, Luc: Semiring programming: a semantic framework for generalized sum product problems (2020)
- Abdallah, Samer: PRISM revisited: declarative implementation of a probabilistic programming language using multi-prompt delimited control (2018)
- Kersting, Kristian; Mladenov, Martin; Tokmakov, Pavel: Relational linear programming (2017)
- Kimmig, Angelika; Van den Broeck, Guy; De Raedt, Luc: Algebraic model counting (2017)
- Orsini, Francesco; Frasconi, Paolo; De Raedt, Luc: kProbLog: an algebraic Prolog for machine learning (2017)
- Orsini, Francesco; Frasconi, Paolo; De Raedt, Luc: kProbLog: an algebraic Prolog for kernel programming (2016)
- De Raedt, Luc; Kimmig, Angelika: Probabilistic (logic) programming concepts (2015)
- Giegerich, Robert; Touzet, Hélène: Modeling dynamic programming problems over sequences and trees with inverse coupled rewrite systems (2014)
- Eisner, Jason; Filardo, Nathaniel W.: Dyna: extending datalog for modern AI (2011) ioport
- Cohen, Shay B.; Simmons, Robert J.; Smith, Noah A.: Dynamic programming algorithms as products of weighted logic programs (2008)