Abstract
The natural meaning of a program written in a functional language like Lisp or ML is a (possibly partial) function. Functions are relations, and this chapter is a gentle introduction to the idea of regarding functional programs as elements of a relational algebra. Using relations rather than functions we avoid the complexity introduced by artificial bottom elements denoting undefinedness. Relations are also natural candidates for modelling non-determinate or set-valued functions. However, the main reason for using relations is that they can be calculated with so well. Using equational reasoning for functional programs, we can construct proofs that are intuitive, memorable and machine-checkable. One basic ingredient of functional programs — composition of functions — is a built-in operator of the relational calculus. Other control constructs as well as concrete data must be translated into the language of relations. We shall attempt to do this in a modular fashion, treating one construct at a time.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1997 Springer-Verlag Wien
About this chapter
Cite this chapter
Berghammer, R., von Karger, B. (1997). Relational Semantics of Functional Programs. In: Brink, C., Kahl, W., Schmidt, G. (eds) Relational Methods in Computer Science. Advances in Computing Sciences. Springer, Vienna. https://doi.org/10.1007/978-3-7091-6510-2_8
Download citation
DOI: https://doi.org/10.1007/978-3-7091-6510-2_8
Publisher Name: Springer, Vienna
Print ISBN: 978-3-211-82971-4
Online ISBN: 978-3-7091-6510-2
eBook Packages: Springer Book Archive