Skip to main content

Pointwise Relational Programming

  • Conference paper
  • First Online:
Algebraic Methodology and Software Technology (AMAST 2000)

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

Abstract

The point-free relational calculus has been very successful as a language for discussing general programming principles. However, when it comes to specific applications, the calculus can be rather awkward to use: some things are more clearly and simply expressed using variables. The combination of variables and relational combinators such as converse and choice yields a kind of nondeterministic functional programming language. We give a semantics for such a language, and illustrate with an example application.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. C. J. Aarts, R. C. Backhouse, P. F. Hoogendijk, E. Voermans, and J. C. S. P. Van der Woude. A relational theory of datatypes. September 1992.

    Google Scholar 

  2. A. Augusteijn. An alternative derivation of a binary heap construction function. In R. S. Bird, C. C. Morgan, and J. C. P. Woodcock, editors, Mathematics of Program Construction, volume 669 of Lecture Notes in Computer Science, pages 368–374. Springer-Verlag, 1992.

    Google Scholar 

  3. R. C. Backhouse. Making formality work for us. EATCS Bulletin, 38:219–249, 1989.

    MATH  Google Scholar 

  4. R. C. Backhouse, P. De Bruin, P. F. Hoogendijk, G. Malcolm, T. S. Voermans, and J. C. S. P. Van der Woude. Polynomial relators. In M. Nivat, C. S. Rattray, T. Rus, and G. Scollo, editors, Algebraic Methodology and Software Technology, Workshops in Computing, pages 303–362. Springer-Verlag, 1992.

    Google Scholar 

  5. J. Backus. Can programming be liberated from the Von Neumann style? A functional style and its algebra of programs. Communications of the ACM, 21:613–641, 1978.

    Article  MATH  MathSciNet  Google Scholar 

  6. M. Barr and C. Wells. Category Theory for Computing Science. International Series in Computer Science. Prentice Hall, 1990.

    Google Scholar 

  7. F. L. Bauer, R. Berghammer, M. Broy, W. Dosch, F. Geiselbrechtinger, R. Gnatz, E. Hangel, W. Hesse, B. Krieg-Brückner, A. Laut, T. Matzner, B. Möller, F. Nickl, H. Partsch, P. Pepper, K. Samelson, M. Wirsing, and H. Wössner. The Munich Project CIP. Volume I: The Wide Spectrum Language CIP-L, volume 183 of Lecture Notes in Computer Science. Springer-Verlag, 1985.

    MATH  Google Scholar 

  8. F. L. Bauer and H. Wössner. Algorithmic Language and Program Development. Texts and Monographs in Computer Science. Springer-Verlag, 1982.

    Google Scholar 

  9. R. Berghammer, P. Kempf, G. Schmidt, and T. Ströhlein. Relation algebra and logic of programs. In H. Andreka and J. D. Monk, editors, Algebraic Logic, volume 54 of Colloquia Mathematica Societatis Janos Bolyai, pages 37–58. North-Holland, 1991.

    Google Scholar 

  10. R. Berghammer and B. Von Karger. Formal derivation of CSP programs from temporal specifications. In Mathematics of Program Construction, volume 947 of Lecture Notes in Computer Science, pages 180–196. Springer-Verlag, 1995.

    Google Scholar 

  11. R. S. Bird. Lectures on constructive functional programming. In M. Broy, editor, Constructive Methods in Computing Science, volume 55 of NATO ASI Series F, pages 151–216. Springer-Verlag, 1989.

    Google Scholar 

  12. R. S Bird. Introduction to Functional Programming in Haskell. International Series in Computer Science. Prentice Hall, 1998.

    Google Scholar 

  13. R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.

    Google Scholar 

  14. C. Brink and G. Schmidt, editors. Relational Methods in Computer Science. Springer-Verlag, 1996. Supplemental Volume of the Journal Computing, to appear.

    Google Scholar 

  15. W. Chen and J. T. Udding. Program inversion: More than fun! Science of Computer Programming, 15(1):1–13, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  16. P. L. Curien. Categorical Combinators, Sequential Algorithms and Functional Programming. Research Notes in Theoretical Computer Science. Pitman, 1986.

    Google Scholar 

  17. E. W. Dijkstra. A Discipline of Programming. Series in Automatic Computation. Prentice Hall, 1976.

    Google Scholar 

  18. R. W. Floyd. Syntactic analysis and operator precedence. Journal of the ACM, 10(3):316–333, 1963.

    Article  MATH  Google Scholar 

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

    Google Scholar 

  20. C. A. R. Hoare and J. He. The weakest prespecification, I. Fundamenta Informaticae, 9(1):51–84, 1986.

    MATH  MathSciNet  Google Scholar 

  21. G. Jones and M. Sheeran. Circuit design in Ruby. In J. Staunstrup, editor, Formal Methods for VLSI Design, pages 13–70. Elsevier Science Publications, 1990.

    Google Scholar 

  22. E. Knapen. Relational programming, program inversion and the derivation of parsing algorithms. Computing science notes, Department of Mathematics and Computing Science, Eindhoven University of Technology, 1993.

    Google Scholar 

  23. J. Lambek and P. J. Scott. Introduction to Higher Order Categorical Logic, volume 7 of Cambridge Studies in Advanced Mathematics. Cambridge University Press, 1986.

    Google Scholar 

  24. C. E. Martin. Preordered categories and predicate transformers. D.Phil. thesis, Computing Laboratory, Oxford, UK, 1991.

    Google Scholar 

  25. L. Meertens. Algorithmics — towards programming as a mathematical activity. In J. W. De Bakker, M. Hazewinkel, and J. K. Lenstra, editors, Mathematics and Computer Science, volume 1 of CWI Monographs, pages 3–42. North-Holland, 1987.

    Google Scholar 

  26. J. M. Morris. Programming by expression refinement: The KMP algorithm. Chapter 37 of W. H. J. Feijen, A. J. M. van Gasteren, D. Gries, and J. Misra, editors, Beauty is our Business. Springer-Verlag, 1990.

    Google Scholar 

  27. D. A. Naumann. Towards squiggly refinement algebra. In D. Gries and W. P. De Roever, editors, Programming Concepts and Methods, pages 346–365. Chapman and Hall, 1998.

    Google Scholar 

  28. B. Schoenmakers. Inorder traversal of a binary heap and its inversion in optimal time and space. In R. S. Bird, C. C. Morgan, and J. C. P. Woodcock, editors, Mathematics of Program Construction, volume 669 of Lecture Notes in Computer Science, pages 291–301. Springer-Verlag, 1992.

    Google Scholar 

  29. D. R. Smith. Top-down synthesis of divide-and-conquer algorithms. Artificial Intelligence, 27(1):43–96, 1985.

    Article  MATH  MathSciNet  Google Scholar 

  30. N. T. E. Ward. A refinement calculus for nondeterministic expressions. Ph.D. thesis, University of Queensland, 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

de Moor, O., Gibbons, J. (2000). Pointwise Relational Programming. In: Rus, T. (eds) Algebraic Methodology and Software Technology. AMAST 2000. Lecture Notes in Computer Science, vol 1816. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45499-3_27

Download citation

  • DOI: https://doi.org/10.1007/3-540-45499-3_27

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67530-3

  • Online ISBN: 978-3-540-45499-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics