Functor-category semantics of programming languages and logics
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.
KeywordsAtomic Formula Uniformity Condition Semantic Domain Specification Logic Contravariant Functor
Unable to display preview. Download preview PDF.
- [Goldblatt 1979]R. Goldblatt, Topoi, The Categorial Analysis of Logic, North-Holland (1979, 2nd edition 1984).Google Scholar
- [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
- [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
- [Moggi 1986]E. Moggi, “Categories of partial morphisms and the λp-calculus”, this volume.Google Scholar
- [Oles 1982]F.J. Oles, A Category-Theoretic Approach to the Semantics of Programming Languages, Ph.D. dissertation, Syracuse University (1982).Google Scholar
- [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
- [Plotkin 1985]G.D. Plotkin, “Types and partial functions”, lecture notes, Computer Science Department, University of Edinburgh.Google Scholar
- [Reynolds 1977]J.C. Reynolds, “Semantics of the domain of flow diagrams”, J.ACM 24 (3), pp. 484–503 (1977).Google Scholar
- [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
- [Reynolds 1981a]J.C. Reynolds, The Craft of Programming, Prentice-Hall International, London (1981).Google Scholar
- [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
- [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
- [Tennent 1981]R.D. Tennent, Principles of Programming Languages, Prentice-Hall International, London (1981).Google Scholar
- [Tennent 1983]R.D. Tennent, “Semantics of interference control”, Theoretical Computer Science 27, pp. 297–310 (1983).Google Scholar
- [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
- [Tennent 1986]R.D. Tennent, “A note on undefined expression values in programming logics”, submitted for publication.Google Scholar