Here we create a framework for handling the semantics of fully typed programming languages with imperative features, higher-order ALGOL-like procedures, block structure, and implicit conversions. Our approach involves the introduction of a new family of programming languages, the coercive typed (lamda)-calculi, denoted by L in the body of the dissertation. By appropriately choosing the linguistic constants (i.e. generators) of L, we can view phrases of variants of ALGOL as syntactically sugared phrases of L.This dissertation breaks into three parts. In the first part, consisting of the first chapter, we supply basic definitions and motivate the idea that functor categories arise naturally in the explanation of block structure and stack discipline. The second part, consisting of the next three chapters, is dedicated to the general theory of the semantics of the coercive typed (lamda)-calculus; the interplay between posets, algebras, and Cartesian closed categories is particularly intense here. The remaining four chapters make up the final part, in which we apply the general theory to give both direct and continuation semantics for desugared variants of ALGOL. To do so, it is necessary to show certain functor categories are Cartesian closed and to describe a category (SIGMA) of store shapes. An interesting novelty in the presentation of continuation semantics is the view that commands form a procedural, rather than a primitive, phrase type.
Cited By
- Kammar O, Levy P, Moss S and Staton S A monad for full ground reference cells Proceedings of the 32nd Annual ACM/IEEE Symposium on Logic in Computer Science, (1-12)
- Melliès P and Zeilberger N (2015). Functors are Type Refinement Systems, ACM SIGPLAN Notices, 50:1, (3-16), Online publication date: 11-May-2015.
- Melliès P and Zeilberger N Functors are Type Refinement Systems Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (3-16)
- Benton N, Hofmann M and Nigam V (2014). Abstract effects and proof-relevant logical relations, ACM SIGPLAN Notices, 49:1, (619-631), Online publication date: 13-Jan-2014.
- Benton N, Hofmann M and Nigam V Abstract effects and proof-relevant logical relations Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (619-631)
- Hermida C and Tennent R (2012). Monoidal indeterminates and categories of possible worlds, Theoretical Computer Science, 430, (3-22), Online publication date: 1-Apr-2012.
- Hermida C and Tennent R (2009). Monoidal Indeterminates and Categories of Possible Worlds, Electronic Notes in Theoretical Computer Science (ENTCS), 249, (39-60), Online publication date: 1-Aug-2009.
- Hermida C and Tennent R (2007). A fibrational framework for possible-world semantics of Algol-like languages, Theoretical Computer Science, 375:1-3, (3-19), Online publication date: 20-Apr-2007.
- Collinson M and Pym D (2006). Bunching for Regions and Locations, Electronic Notes in Theoretical Computer Science (ENTCS), 158, (171-197), Online publication date: 1-May-2006.
- Reus B and Schwinghammer J Separation logic for higher-order store Proceedings of the 20th international conference on Computer Science Logic, (575-590)
- Aboul-Hosn K and Kozen D Relational semantics for higher-order programs Proceedings of the 8th international conference on Mathematics of Program Construction, (29-48)
- Aboul-Hosn K and Kozen D Local variable scoping and kleene algebra with tests Proceedings of the 9th international conference on Relational Methods in Computer Science, and 4th international conference on Applications of Kleene Algebra, (78-90)
- Schwinghammer J A typed semantics of higher-order store and subtyping Proceedings of the 9th Italian conference on Theoretical Computer Science, (390-405)
- Benton N and Leperchey B Relational reasoning in a nominal semantics for storage Proceedings of the 7th international conference on Typed Lambda Calculi and Applications, (86-101)
- Reddy U and Yang H (2004). Correctness of data representations involving heap data structures, Science of Computer Programming, 50:1-3, (129-160), Online publication date: 1-Mar-2004.
- Reddy U and Yang H Correctness of data representations involving heap data structures Proceedings of the 12th European conference on Programming, (223-237)
- Ghica D and McCusker G (2003). The regular-language semantics of second-order idealized ALGOL, Theoretical Computer Science, 309:1, (469-502), Online publication date: 2-Dec-2003.
- Tennent R and Ghica D (2000). Abstract Models of Storage, Higher-Order and Symbolic Computation, 13:1-2, (119-129), Online publication date: 1-Apr-2000.
- Brookes S The essence of parallel Algol Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
- Reynolds J Using functor categories to generate intermediate code Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (25-36)
- Odersky M A functional theory of local names Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (48-59)
- Meyer A and Sieber K Towards fully abstract semantics for local variables Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (191-203)
- Oles F Semantics for concurrency without powerdomains Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, (211-222)
- Guessarian I (1983). Survey on classes of interpretations and some of their applications, ACM SIGACT News, 15:3, (45-71), Online publication date: 1-Jul-1983.
Recommendations
Category Theoretic Semantics for Typed Binding Signatures with Recursion
Logic for PragmaticsWe generalise Fiore et al's account of variable binding for untyped cartesian contexts to give an account of binding for either variables or names that may be typed. We do this in an enriched setting, allowing the incorporation of recursion into the ...
Semantics of programming languages
A semantic specification of a programming language can be relevant for programmers to understand software written in the language, as well as for the implementers of a language to understand the intentions of its designers. In the early 1980s, Jan ...
Category Theoretic Semantics for Typed Binding Signatures with Recursion
Logic for PragmaticsWe generalise Fiore et al's account of variable binding for untyped cartesian contexts to give an account of binding for either variables or names that may be typed. We do this in an enriched setting, allowing the incorporation of recursion into the ...