Abstract
We argue for the benefits of relations over functions for modelling programs, and even more so for modelling specifications. To support this argument, we present an extended case study for a class of optimization problems, deriving efficient functional programs from concise relational specifications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Roland Backhouse, Peter de Bruin, Grant Malcolm, Ed Voermans, and Jaap van der Woude. A relational theory of datatypes. In STOP 1992 Summerschool on Constructive Algorithmics. STOP project, 1992.
Roland Backhouse and Paul Hoogendijk. Elements of a relational theory of datatypes. In Bernhard Möller, Helmut Partsch, and Steve Schumann, editors, LNCS 755: IFIP TC2/WG2.1 State-of-the-Art Report on Formal Program Development, pages 7–42. Springer-Verlag, 1993.
R. Berghammer and H. Zierer. Relational algebraic semantics of deterministic and non-deterministic programs. Theoretical Computer Science, 43(2–3):123–147, 1986.
Richard Bird and Oege de Moor. Hybrid dynamic programming. Programming Research Group, Oxford, 1994.
Richard Bird and Oege de Moor. The Algebra of Programming. Prentice-Hall, 1996.
Richard S. Bird. On building trees with minimum height. Journal of Functional Programming, 7(4):441–445, 1997.
A. Bunkenburg. Expression Refinement. PhD thesis, Computing Science Department, University of Glasgow, 1997.
Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms. MIT Press, 1990.
Sharon Curtis. A Relational Approach to Optimization Problems. PhD thesis, University of Oxford, 1996. Technical Monograph PRG-122.
J. W. de Bakker and W. P. de Roever. A calculus for recursive program schemes. In M. Nivat, editor, Automata, Languages and Programming, pages 167–196. North-Holland, 1973.
Oege de Moor and Jeremy Gibbons. Pointwise relational programming. In LNCS 1816: Algebraic Methodology and Software Technology, pages 371–390, May 2000.
S. Eilenberg and J. B. Wright. Automata in general algebras. Information and Control, 11(4):452–470, 1967.
Sharon Flynn. A Refinement Calculus for Expressions. PhD thesis, University of Glasgow, 1997.
P. J. Freyd and A. Ščedrov. Categories, Allegories. North-Holland, 1990.
David Gries. The Science of Programming. Texts and Monographs in Computer Science. Springer-Verlag, 1981.
Eric C. R. Hehner. A Practical Theory of Programming. Texts and Monographs in Computer Science. Springer-Verlag, 1993.
C. A. R. Hoare. Programs are predicates. In C. A. R. Hoare and J. C. Shepherdson, editors, Mathematical Logic and Programming Languages. Prentice-Hall, 1985. Also Chapter 20 of [18].
C. A. R. Hoare. Essays in Computing Science. Prentice Hall, 1989.
Paul Hoogendijk. A Generic Theory of Datatypes. PhD thesis, Technische Universiteit Eindhoven, 1997.
Simon Peyton Jones, John Hughes, Lennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, Thomas Johnsson, Mark Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, and Philip Wadler. Haskell 98: A non-strict, purely functional language. http://www.haskell.org/onlinereport, February 1999.
Bernhard Korte, Laszlo Lovasz, and Rainer Schrader. Greedoids. Springer-Verlag, 1991.
Robert A. Kowalski. Predicate logic as a programming language. In IFIP Congress, 1974.
Ali Mili, Jules Desharnais, and Fatma Mili. Computer Program Construction. Oxford University Press, 1994.
Bernhard Möller. Relations as a program development language. In B. Möller, editor, IFIP TC2/WG2.1 Working Conference on Constructing Programs from Specifications, pages 373–397. North-Holland, 1991.
Joseph M. Morris. Programming by expression refinement: The KMP algorithm. In W. H. J. Feijen, A. J. M. van Gasteren, D. Gries, and J. Misra, editors, Beauty is our Business, chapter 37. Springer-Verlag, 1990.
Joseph M. Morris. Non-deterministic expressions and predicate transformers. Information Processing Letters, 61:241–246, 1997.
Shin-Cheng Mu. Inverting Programs by Calculation. DPhil thesis, University of Oxford, in preparation.
Theo Norvell and Eric Hehner. Logical specifications for functional programs. In R. S. Bird, C. C. Morgan, and J. C. P. Woodcock, editors, LNCS 669: Mathematics of Program Construction, pages 269–290. Springer-Verlag, 1993.
Richard A. O’Keefe. The Craft of Prolog. MIT Press, 1990.
Alfred Tarski. On the calculus of relations. Journal of Symbolic Logic, 6(3):73–89, 1941.
Nigel Thomas Edgar Ward. A Refinement Calculus for Nondeterministiuc Expressions. PhD thesis, University of Queensland, February 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Bird, R., Gibbons, J., Mu, SC. (2002). Algebraic Methods for Optimization Problems. In: Backhouse, R., Crole, R., Gibbons, J. (eds) Algebraic and Coalgebraic Methods in the Mathematics of Program Construction. Lecture Notes in Computer Science, vol 2297. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47797-7_8
Download citation
DOI: https://doi.org/10.1007/3-540-47797-7_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43613-3
Online ISBN: 978-3-540-47797-6
eBook Packages: Springer Book Archive