Results 21  30
of
34
Bisimilarity for the region calculus
 HigherOrder 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 stacklike fashion. The annotations can be statically inferred by a type and ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
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 stacklike 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 regionannotated terms. Our notion of bisimilarity is reminiscent of open bisimilarity for the πcalculus and we prove it sound and complete with respect to Morrisstyle 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.
On the observational theory of the CPScalculus
"... We study the observational theory of Thielecke’s CPScalculus, a distillation of the target language of ContinuationPassing Style transforms. We define a labelled transition system for the CPScalculus from which we derive a (weak) labelled bisimilarity that completely characterises Morris’ context ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
We study the observational theory of Thielecke’s CPScalculus, a distillation of the target language of ContinuationPassing Style transforms. We define a labelled transition system for the CPScalculus from which we derive a (weak) labelled bisimilarity that completely characterises Morris’ contextequivalence. We prove a context lemma showing that Morris’ contextequivalence coincides with a simpler contextequivalence closed under a smaller class of contexts. Then we profit of the determinism of the CPScalculus to give a simpler labelled characterisation of Morris’ equivalence, in the style of Abramsky’s applicative bisimilarity. We enhance our bisimulation proofmethods with upto bisimilarity and upto context proof techniques. We use our bisimulation proof techniques to investigate a few algebraic properties on diverging terms that cannot be proved using the original axiomatic semantics of the CPScalculus. Finally, we prove the full abstraction of Thielecke’s encoding of the CPScalculus into a fragment of Fournet and Gonthier’s Joincalculus with single pattern definitions.
Monads, Eects and Transformations
"... We dene a typed compiler intermediate language, MILlite, which incorporates computational types rened with eect information. We characterise MILlite observational congruence by using Howe's method to prove a ciu theorem for the language in terms of a termination predicate dened directly on t ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
We dene a typed compiler intermediate language, MILlite, which incorporates computational types rened with eect information. We characterise MILlite observational congruence by using Howe's method to prove a ciu theorem for the language in terms of a termination predicate dened directly on the term. We then dene a logical predicate which captures an observable version of the intended meaning of each of our eect annotations. Having proved the fundamental theorem for this predicate, we use it with the ciu theorem to validate a number of eectbased transformations performed by the MLj compiler for Standard ML. 1
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 stacklike fashion. The annotations can be statically inferred by a type and eect syst ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
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 stacklike 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.
Higher Order Operationational Techniques in Semantics  Introduction
"... Introduction The articles in this volume concern operational semantics of higher order programming languages, mathematical techniques for developing the properties of such operational semantics, and applications of those techniques. In this Introduction we set the articles in the wider context of re ..."
Abstract
 Add to MetaCart
Introduction The articles in this volume concern operational semantics of higher order programming languages, mathematical techniques for developing the properties of such operational semantics, and applications of those techniques. In this Introduction we set the articles in the wider context of research into programming languages and bring out some of the themes and techniques that recur throughout the book. Operational Semantics The various approaches to giving meanings to programming languages fall broadly into three categories: denotational, axiomatic, and operational. In a denotational semantics, the meaning of programs is defined abstractly using elements of some suitable mathematical structure. In an axiomatic semantics, meaning is defined indirectly via the axioms and rules of some logic of program properties. In an operational semantics, the meaning of programs is defined in terms of their behaviour, for example the steps of computation they can take during
Parametric Polymorphism and Operational Equivalence
, 1998
"... Studies of the mathematical properties of impredicative polymorphic types have for the most part focused on the polymorphic lambda calculus of GirardReynolds, which is a calculus of total polymorphic functions. This paper considers polymorphic types from a functional programming perspective, where ..."
Abstract
 Add to MetaCart
(Show Context)
Studies of the mathematical properties of impredicative polymorphic types have for the most part focused on the polymorphic lambda calculus of GirardReynolds, which is a calculus of total polymorphic functions. This paper considers polymorphic types from a functional programming perspective, where the partialness arising from the presence of fixpoint recursion complicates the nature of potentially infinite (‘lazy’) data types. An approach to Reynolds ’ notion of relational parametricity is developed which works directly on the syntax of a programming language, using a novel closure operator to relate operational behaviour to parametricity properties of types. Working with an extension of Plotkin’s PCF with ∀types, lazy lists and existential types, we show by example how the resulting logical relation can be used to prove properties of polymorphic types up to operational equivalence. 1.
Relational Reasoning about Functions and Nondeterminism
, 1998
"... Reproduction of all or part of this workis permitted for educational or research use on condition that this copyright notice isincluded in any copy. See back inner page for a list of recent BRICS Dissertation Series publications. Copies may be obtained by contacting: ..."
Abstract
 Add to MetaCart
(Show Context)
Reproduction of all or part of this workis permitted for educational or research use on condition that this copyright notice isincluded in any copy. See back inner page for a list of recent BRICS Dissertation Series publications. Copies may be obtained by contacting:
Abstract A Complete, CoInductive Syntactic Theory of Sequential Control and State
"... We present a new coinductive syntactic theory, eager normal form bisimilarity, for the untyped callbyvalue lambda calculus extended with continuations and mutable references. We demonstrate that the associated bisimulation proof principle is easy to use and that it is a powerful tool for proving ..."
Abstract
 Add to MetaCart
(Show Context)
We present a new coinductive syntactic theory, eager normal form bisimilarity, for the untyped callbyvalue lambda calculus extended with continuations and mutable references. We demonstrate that the associated bisimulation proof principle is easy to use and that it is a powerful tool for proving equivalences between recursive imperative higherorder programs. The theory is modular in the sense that eager normal form bisimilarity for each of the calculi extended with continuations and/or mutable references is a fully abstract extension of eager normal form bisimilarity for its subcalculi. For each calculus, we prove that eager normal form bisimilarity is a congruence and is sound with respect to contextual equivalence. Furthermore, for the calculus with both continuations and mutable references, we show that eager normal form bisimilarity is complete: it coincides with contextual equivalence. Categories and Subject Descriptors D.3.3 [Programming Languages]:
Abstract Logical Reasoning for HigherOrder Functions with Local State
"... We introduce an extension of Hoare logic for callbyvalue higherorder functions with MLlike local reference generation. Local references may be generated dynamically and exported outside their scope, may store higherorder functions, and may be used to construct complex mutable data structures. Th ..."
Abstract
 Add to MetaCart
(Show Context)
We introduce an extension of Hoare logic for callbyvalue higherorder functions with MLlike local reference generation. Local references may be generated dynamically and exported outside their scope, may store higherorder functions, and may be used to construct complex mutable data structures. This primitive can be fully captured by a predicate which asserts reachability of a reference name from a possibly higherorder datum. The logic enjoys a strong match with the semantics of programs, in the sense that valid assertions characterise the standard contextual congruence. We explore the logic’s descriptive and reasoning power with nontrivial programming examples combining higherorder procedures and dynamically generated local state. Axioms for reachability and local invariant play a central role for reasoning about the examples. 1.