Abstract
Algebraic dynamic programming is a new method for developing and reasoning about dynamic programming algorithms. In this approach, so-called yield grammars and evaluation algebras constitute abstract specifications of dynamic programming algorithms. We describe how this theory is put to practice by providing a specification language that can both be embedded in a lazy functional language, and translated into an imperative language. Parts of the analysis required for the latter translation also gives rise to source-to-source transformations that improve the asymptotic efficiency of the functional implementation. The multi-paradigm system resulting from this approach provides increased programming productivity and effective validation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. V. Aho and J.D. Ullman. The Theory of Parsing, Translation and Compiling. Prentice-Hall, Englewood Cliffs, NJ, 1973. I and II.
R. Bellman. Dynamic Programming. Princeton University Press, 1957.
W.S. Brainerd. Tree generating regular systems. Information and Control, 14:217–231, 1969.
R. Durbin, S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis. Cambridge University Press, 1998.
D. Evers and R. Giegerich. Reducing the conformation space in RNA structure prediction. In German Conference on Bioinformatics, pages 118–124, 2001.
R. Giegerich. A systematic approach to dynamic programming in bioinformatics. Bioinformatics, 16:665–677, 2000.
R. Giegerich, S. Kurtz, and G. F. Weiller. An algebraic dynamic programming approach to the analysis of recombinant DNA sequences. In Proc. of the First Workshop on Algorithmic Aspects of Advanced Programming Languages, pages 77–88, 1999.
R. Giegerich and C. Meyer. Algebraic dynamic programming. In Proc. of the 9th International Conference on Algebraic Methodology And Software Technology, 2002. To appear.
R. Giegerich and K. Schmal. Code selection techniques: Pattern matching, tree parsing and inversion of derivors. In Proc. European Symposium on Programming 1988, Lecture Notes in Computer Science 300, Springer Verlag, pages 247–268, 1988.
S.L. Graham and M.A. Harrison. An improved context-free recognizer. ACM Transactions on Programming Languages and Systems, 2(3):415–462, 1980.
D. Gusfield. Algorithms on Strings, Trees, and Sequences. Computer Science and Computational Biology. Cambridge University Press, 1997.
M. Höchsmann. Tree and Forest Alignments-An Algebraic Dynamic Programming Approach for Aligning Trees and Forests. Master’s thesis, Bielefeld University, Mai 2001.
G. Hutton. Higher order functions for parsing. Journal of Functional Programming, 3(2):323–343, 1992.
C. Meyer and R. Giegerich. Matching and Significance Evaluation of Combined Sequence-Structure Motifs in RNA. Z.Phys.Chem., 216:193–216, 2002.
T.L. Morin. Monotonicity and the principle of optimality. Journal of Mathematical Analysis and Applications, 86:665–674, 1982.
E. Rivas and S. Eddy. A dynamic programming algorithm for RNA structure prediction including pseudoknots. J. Mol. Biol., 285:2053–2068, 1999.
D.B. Searls. Linguistic approaches to biological sequences. CABIOS, 13(4):333–344, 1997.
K. Sikkel and M. Lankhorst. A parallel bottom-up tomita parser. In G. Görz, editor, 1. Konferenz Verarbeitung natürlicher Sprache (KONVENS’92), Nürnberg, Germany, Informatik Aktuell, pages 238–247. Springer-Verlag, 1992.
P. Steffen. Basisfunktionen für die Übersetzung von Programmen der Algebraischen Dynamischen Programmierung. Master’s thesis, Bielefeld University, February 2002. In German.
M. Tomita. Efficient Parsing for Natural Language-A Fast Algorithm for Practical Systems. Int. Series in Engineering and Computer Science. Kluwer, Hingham, MA, 1986.
M. Zuker and S. Sankoff. RNA secondary structures and their prediction. Bull. Math. Biol., 46:591–621, 1984.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Giegerich, R., Steffen, P. (2002). Implementing Algebraic Dynamic Programming in the Functional and the Imperative Programming Paradigm. In: Boiten, E.A., Möller, B. (eds) Mathematics of Program Construction. MPC 2002. Lecture Notes in Computer Science, vol 2386. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45442-X_1
Download citation
DOI: https://doi.org/10.1007/3-540-45442-X_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43857-1
Online ISBN: 978-3-540-45442-7
eBook Packages: Springer Book Archive