Results 1  10
of
13
Relational reasoning in a nominal semantics for storage
 In Proc. 7th International Conference on Typed Lambda Calculi and Applications (TLCA), volume 3461 of Lecture Notes in Computer Science
, 2005
"... a higherorder CBV language with recursion and dynamically allocated mutable references that may store both ground data and the addresses of other references, but not functions. This model is adequate, though far from fully abstract. We then develop a relational reasoning principle over the denotati ..."
Abstract

Cited by 57 (13 self)
 Add to MetaCart
a higherorder CBV language with recursion and dynamically allocated mutable references that may store both ground data and the addresses of other references, but not functions. This model is adequate, though far from fully abstract. We then develop a relational reasoning principle over the denotational model, and show how it may be used to establish various contextual equivalences involving allocation and encapsulation of store. 1
RegularLanguage Semantics for a CallbyValue Programming Language
"... We explain how game semantics can be used to reason about term equivalence in a finitary imperative first order language with arrays. For this language, the gamesemantic interpretation of types and terms is fully characterized by their sets of complete plays. Because these sets are regular over th ..."
Abstract

Cited by 15 (6 self)
 Add to MetaCart
We explain how game semantics can be used to reason about term equivalence in a finitary imperative first order language with arrays. For this language, the gamesemantic interpretation of types and terms is fully characterized by their sets of complete plays. Because these sets are regular over the alphabet of moves, they are representable by (extended) regular expressions. The formal apparatus of game semantics is greatly simplified but the good theoretical properties of the model are preserved. The principal advantage of this approach is that it is mathematically elementary, while fully formalized. Since language equivalence for regular languages is decidable, this method of proving term equivalence is suitable for automation.
Extending the Loop Language with HigherOrder Procedural Variables
 Special issue of ACM TOCL on Implicit Computational Complexity
, 2010
"... We extend Meyer and Ritchie’s Loop language with higherorder procedures and procedural variables and we show that the resulting programming language (called Loop ω) is a natural imperative counterpart of Gödel System T. The argument is twofold: 1. we define a translation of the Loop ω language int ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
We extend Meyer and Ritchie’s Loop language with higherorder procedures and procedural variables and we show that the resulting programming language (called Loop ω) is a natural imperative counterpart of Gödel System T. The argument is twofold: 1. we define a translation of the Loop ω language into System T and we prove that this translation actually provides a lockstep simulation, 2. using a converse translation, we show that Loop ω is expressive enough to encode any term of System T. Moreover, we define the “iteration rank ” of a Loop ω program, which corresponds to the classical notion of “recursion rank ” in System T, and we show that both translations preserve ranks. Two applications of these results in the area of implicit complexity are described. 1
Abstract Models of Storage
, 2000
"... This note is a historical survey of Christopher Strachey's influence on the development of semantic models of assignment and storage management in procedural languages. ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
This note is a historical survey of Christopher Strachey's influence on the development of semantic models of assignment and storage management in procedural languages.
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
"... The hiding of internal invariants creates a mismatch between procedure specifications in an interface and proof obligations on the implementations of those procedures. The mismatch is sound if the invariants depend only on encapsulated state, but encapsulation is problematic in contemporary software ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
The hiding of internal invariants creates a mismatch between procedure specifications in an interface and proof obligations on the implementations of those procedures. The mismatch is sound if the invariants depend only on encapsulated state, but encapsulation is problematic in contemporary software due to the many uses of shared mutable objects. The mismatch is formalized here in a proof rule that achieves flexibility via explicit restrictions on client effects, expressed using ghost state and ordinary first order assertions. The restrictions amount to a stateful frame condition that must be satisfied by any client; this dynamic encapsulation boundary complements conventional scopebased encapsulation. The technical development is based on a companion paper, Part I, that presents a programming logic with stateful frame conditions for commands.
Bad variables under control
"... Abstract. We give a fully abstract game model for Idealized Algol with nonlocal control flow. In contrast to most previous papers on game semantics, we do not need to include the badvariable constructor mkvar to obtain full abstraction. Using the model we show that, unlike in the “controlfree ” c ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
Abstract. We give a fully abstract game model for Idealized Algol with nonlocal control flow. In contrast to most previous papers on game semantics, we do not need to include the badvariable constructor mkvar to obtain full abstraction. Using the model we show that, unlike in the “controlfree ” case, the presence of mkvar does affect observational equivalence. We conclude by discussing the effect of mkvar on nondeterministic and probabilistic variants of Idealized Algol. 1
A πcalculus process semantics of concurrent idealised ALGOL
 In Proc. FOSSACS'99, volume 1578 of LNCS
, 1999
"... We study the use of the πcalculus for semantical descriptions of languages such as Concurrent Idealised ALGOL (CIA), combining imperative, functional and concurrent features. We first present an operational semantics for CIA, given by SOS rules and a contextual form of behavioural equivalence; th ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We study the use of the πcalculus for semantical descriptions of languages such as Concurrent Idealised ALGOL (CIA), combining imperative, functional and concurrent features. We first present an operational semantics for CIA, given by SOS rules and a contextual form of behavioural equivalence; then a πcalculus semantics. As behavioural equivalence on πcalculus processes we choose the standard (weak early) bisimilarity. We compare the two semantics, demonstrating that there is a close operational correspondence between them and that the πcalculus semantics is sound. This allows for applying thecalculus theory in proving behavioural properties of CIA phrases. We discuss laws and examples which have served as benchmarks to various semantics, and a more complex example involving procedures of higher order.
Geometry of Synthesis IV Compiling Affine Recursion into Static Hardware
"... Abramsky’s Geometry of Interaction interpretation (GoI) is a logicaldirected way to reconcile the process and functional views of computation, and can lead to a dataflowstyle semantics of programming languages that is both operational (i.e. effective) and denotational (i.e. inductive on the langua ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Abramsky’s Geometry of Interaction interpretation (GoI) is a logicaldirected way to reconcile the process and functional views of computation, and can lead to a dataflowstyle semantics of programming languages that is both operational (i.e. effective) and denotational (i.e. inductive on the language syntax). The key idea of Ghica’s Geometry of Synthesis (GoS) approach is that for certain programming languages (namely Reynolds’s affine Syntactic Control of Interference–SCI) the GoI processeslike interpretation of the language can be given a finitary representation, for both internal state and tokens. A physical realisation of this representation becomes a semanticsdirected compiler for SCI into hardware. In this paper we examine the issue of compiling affine recursive programs into hardware using the GoS method. We give syntax and compilation techniques for unfolding recursive computation in space or in time and we illustrate it with simple benchmarkstyle examples. We examine the performance of the benchmarks against conventional CPUbased execution models.
Logic for Computational Effects: work in progress
"... Abstract We outline a possible logic that will allow us to give a unified approach to reasoning about computational effects. The logic is given by extending Moggi's computational *calculus by basic types and a signature, the latter given by constant symbols, function symbols, and operation symbols, ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract We outline a possible logic that will allow us to give a unified approach to reasoning about computational effects. The logic is given by extending Moggi's computational *calculus by basic types and a signature, the latter given by constant symbols, function symbols, and operation symbols, and by including a _ operator. We give both syntax and semantics for the logic except for _. We consider a number of sound and complete classes of models, all given in categorytheoretic terms. We illustrate the ideas with some of our leading examples of computational effects, and we observe that operations give rise to natural modalities.
Instances of computational effects: an algebraic perspective
"... Abstract—We investigate the connections between computational effects, algebraic theories, and monads on functor categories. We develop a syntactic framework with variable binding that allows us to describe equations between programs while taking into account the idea that there may be different ins ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract—We investigate the connections between computational effects, algebraic theories, and monads on functor categories. We develop a syntactic framework with variable binding that allows us to describe equations between programs while taking into account the idea that there may be different instances of a particular computational effect. We use our framework to give a general account of several notions of computation that had previously been analyzed in terms of monads on presheaf categories: the analysis of local store by Plotkin and Power; the analysis of restriction by Pitts; and the analysis of the pi calculus by Stark. I.