Functor-category semantics of programming languages and logics

  • R. D. Tennent
Part II Research Contributions Section 1: Semantics
Part of the Lecture Notes in Computer Science book series (LNCS, volume 240)


A category-theoretic technique for denotational-semantic description of programming languages has recently been developed by J.C. Reynolds and F.J. Oles. The first application was an “abstract” description of stack-oriented storage management in Algol 60-like programming languages. A more recent application has been to obtain a model of Reynolds's “specification logic” that is non-operational and validates certain intuitively-true axioms; this application required ideas from topos theory. This paper is an introduction to the Reynolds-Oles technique and its applications. A novel feature of the presentation is the systematic use in functor categories of analogues to conventional domain constructions.

In designing a programming language, the central problem is to organize a variety of concepts in a way which exhibits uniformity and generality. Substantial leverage can be gained in attacking this problem if these concepts can be defined concisely in a framework which has already proven its ability to impose uniformity and generality upon a wide variety of mathematics.

J.C. Reynolds


Atomic Formula Uniformity Condition Semantic Domain Specification Logic Contravariant Functor 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Goldblatt 1979]
    R. Goldblatt, Topoi, The Categorial Analysis of Logic, North-Holland (1979, 2nd edition 1984).Google Scholar
  2. [Halpern 1983]
    J.Y. Halpern, A.R. Meyer and B.A. Trakhtenbrot, “The semantics of local storage, or what makes the free-list free?”, Conf. Record 11th ACM Symp. on Principles of Programming Languages, pp. 245–257, ACM, New York (1983).Google Scholar
  3. [Milne and Strachey 1976]
    R.E. Milne and C. Strachey, A Theory of Programming Language Semantics, Chapman and Hall, London, Wiley, New York (1976).Google Scholar
  4. [Moggi 1986]
    E. Moggi, “Categories of partial morphisms and the λp-calculus”, this volume.Google Scholar
  5. [Oles 1982]
    F.J. Oles, A Category-Theoretic Approach to the Semantics of Programming Languages, Ph.D. dissertation, Syracuse University (1982).Google Scholar
  6. [Oles 1985]
    F.J. Oles, “Type algebras, functor categories and block structure”, in Algebraic Methods in Semantics (M. Nivat and J.C. Reynolds, eds.), pp. 543–573, Cambridge University Press (1985).Google Scholar
  7. [Plotkin 1985]
    G.D. Plotkin, “Types and partial functions”, lecture notes, Computer Science Department, University of Edinburgh.Google Scholar
  8. [Reynolds 1977]
    J.C. Reynolds, “Semantics of the domain of flow diagrams”, J.ACM 24 (3), pp. 484–503 (1977).Google Scholar
  9. [Reynolds 1978]
    J.C. Reynolds, “Syntactic control of interference”, Conf. Record 5th ACM Symp. on Principles of Programming Languages, pp. 39–46, ACM, New York (1978).Google Scholar
  10. [Reynolds 1981a]
    J.C. Reynolds, The Craft of Programming, Prentice-Hall International, London (1981).Google Scholar
  11. [Reynolds 1981b]
    J.C. Reynolds, “The essence of Algol”, in Algorithmic Languages (J.W. de Bakker and J.C. van Vliet, eds.), pp. 345–372, North-Holland (1981).Google Scholar
  12. [Reynolds 1982]
    J.C. Reynolds, “Idealized Algol and its specification logic”, in Tools and Notions for Program Construction (D. Néel, ed.), pp. 121–161, Cambridge University Press (1982); also Report 1-81, School of Computer and Information Science, Syracuse University (1981).Google Scholar
  13. [Tennent 1981]
    R.D. Tennent, Principles of Programming Languages, Prentice-Hall International, London (1981).Google Scholar
  14. [Tennent 1983]
    R.D. Tennent, “Semantics of interference control”, Theoretical Computer Science 27, pp. 297–310 (1983).Google Scholar
  15. [Tennent 1985]
    R.D. Tennent, “Semantical analysis of specification logic (preliminary report)”, in Logics of Programs 1985 (R. Parikh, ed.), Lecture Notes in Computer Science, Vol. 193, pp. 373–386, Springer (1985).Google Scholar
  16. [Tennent 1986]
    R.D. Tennent, “A note on undefined expression values in programming logics”, submitted for publication.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • R. D. Tennent
    • 1
  1. 1.Department of Computer ScienceUniversity of EdinburghEdinburghScotland

Personalised recommendations