Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2297))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. R. Berghammer and H. Zierer. Relational algebraic semantics of deterministic and non-deterministic programs. Theoretical Computer Science, 43(2–3):123–147, 1986.

    Article  MATH  MathSciNet  Google Scholar 

  4. Richard Bird and Oege de Moor. Hybrid dynamic programming. Programming Research Group, Oxford, 1994.

    Google Scholar 

  5. Richard Bird and Oege de Moor. The Algebra of Programming. Prentice-Hall, 1996.

    Google Scholar 

  6. Richard S. Bird. On building trees with minimum height. Journal of Functional Programming, 7(4):441–445, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  7. A. Bunkenburg. Expression Refinement. PhD thesis, Computing Science Department, University of Glasgow, 1997.

    Google Scholar 

  8. Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms. MIT Press, 1990.

    Google Scholar 

  9. Sharon Curtis. A Relational Approach to Optimization Problems. PhD thesis, University of Oxford, 1996. Technical Monograph PRG-122.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. Oege de Moor and Jeremy Gibbons. Pointwise relational programming. In LNCS 1816: Algebraic Methodology and Software Technology, pages 371–390, May 2000.

    Chapter  Google Scholar 

  12. S. Eilenberg and J. B. Wright. Automata in general algebras. Information and Control, 11(4):452–470, 1967.

    Article  MATH  MathSciNet  Google Scholar 

  13. Sharon Flynn. A Refinement Calculus for Expressions. PhD thesis, University of Glasgow, 1997.

    Google Scholar 

  14. P. J. Freyd and A. Ščedrov. Categories, Allegories. North-Holland, 1990.

    Google Scholar 

  15. David Gries. The Science of Programming. Texts and Monographs in Computer Science. Springer-Verlag, 1981.

    Google Scholar 

  16. Eric C. R. Hehner. A Practical Theory of Programming. Texts and Monographs in Computer Science. Springer-Verlag, 1993.

    Google Scholar 

  17. 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].

    Google Scholar 

  18. C. A. R. Hoare. Essays in Computing Science. Prentice Hall, 1989.

    Google Scholar 

  19. Paul Hoogendijk. A Generic Theory of Datatypes. PhD thesis, Technische Universiteit Eindhoven, 1997.

    Google Scholar 

  20. 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.

  21. Bernhard Korte, Laszlo Lovasz, and Rainer Schrader. Greedoids. Springer-Verlag, 1991.

    Google Scholar 

  22. Robert A. Kowalski. Predicate logic as a programming language. In IFIP Congress, 1974.

    Google Scholar 

  23. Ali Mili, Jules Desharnais, and Fatma Mili. Computer Program Construction. Oxford University Press, 1994.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. Joseph M. Morris. Non-deterministic expressions and predicate transformers. Information Processing Letters, 61:241–246, 1997.

    Article  MathSciNet  Google Scholar 

  27. Shin-Cheng Mu. Inverting Programs by Calculation. DPhil thesis, University of Oxford, in preparation.

    Google Scholar 

  28. 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.

    Google Scholar 

  29. Richard A. O’Keefe. The Craft of Prolog. MIT Press, 1990.

    Google Scholar 

  30. Alfred Tarski. On the calculus of relations. Journal of Symbolic Logic, 6(3):73–89, 1941.

    Article  MATH  MathSciNet  Google Scholar 

  31. Nigel Thomas Edgar Ward. A Refinement Calculus for Nondeterministiuc Expressions. PhD thesis, University of Queensland, February 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics