Results 1 -
3 of
3
Programming, Transforming, and Proving with Function Abstractions and Memories
"... ions and Memories Ian Mason Stanford University IAM@SAIL.STANFORD.EDU Carolyn Talcott Stanford University CLT@SAIL.STANFORD.EDU 1. Overview Notions of program equivalence are fundamental to the process of program specification and transformation. Recent work of Talcott, Mason, and Felleisen esta ..."
Abstract
-
Cited by 24 (10 self)
- Add to MetaCart
ions and Memories Ian Mason Stanford University IAM@SAIL.STANFORD.EDU Carolyn Talcott Stanford University CLT@SAIL.STANFORD.EDU 1. Overview Notions of program equivalence are fundamental to the process of program specification and transformation. Recent work of Talcott, Mason, and Felleisen establishes a basis for studying notions of program equivalence for programming languages with function and control abstractions operating on objects with memory. This work extends work of Landin, Reynolds, Morris and Plotkin. [Landin 1964] and [Reynolds 1972] describe high level abstract machines for defining language semantics. [Morris 1968] defines an extensional equivalence relation for the classical lambda calculus. [Plotkin 1975] extends these ideas to the call-by-value lambda calculus and defines the operational equivalence relation. Operational equivalence is the equivalence naturally associated with the operational approximation pre-ordering. One expression operationally approximates an...
Bisimilarity for the region calculus
- Higher-Order and Symbolic Computation
"... Abstract. A region calculus is a programming language calculus with explicit instrumentation for memory management. Every value is annotated with a region in which it is stored and regions are allocated and deallocated in a stack-like fashion. The annotations can be statically inferred by a type and ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Abstract. A region calculus is a programming language calculus with explicit instrumentation for memory management. Every value is annotated with a region in which it is stored and regions are allocated and deallocated in a stack-like fashion. The annotations can be statically inferred by a type and effect system, making a region calculus suitable as an intermediate language for a compiler of statically typed programming languages. Although a lot of attention has been paid to type soundness properties of different flavors of region calculi, it seems that little effort has been made to develop a semantic framework. In this paper, we present a theory based on bisimulation, which serves as a coinductive proof principle for showing equivalences of polymorphically region-annotated terms. Our notion of bisimilarity is reminiscent of open bisimilarity for the π-calculus and we prove it sound and complete with respect to Morris-style contextual equivalence. As an application, we formulate a syntactic equational theory, which is used elsewhere to prove the soundness of a specializer based on region inference. We use our bisimulation framework to show that the equational theory is sound with respect to contextual equivalence.
An Equational Theory for a Region Calculus
, 2002
"... A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every value is annotated with a region in which it is stored. Regions are allocated and deallocated in a stack-like fashion. The annotations can be statically inferred by a type and eect syst ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every value is annotated with a region in which it is stored. Regions are allocated and deallocated in a stack-like fashion. The annotations can be statically inferred by a type and eect system, making a region calculus suitable as an intermediate language for a compiler of statically typed programming languages.

