Results 1  10
of
11
Relating Two Semantics of Locally Scoped Names
"... The operational semantics of programming constructs involving locally scoped names typically makes use of stateful dynamic allocation: a set of currentlyused names forms part of the state and upon entering a scope the set is augmented by a new name bound to the scoped identifier. More abstractly, o ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The operational semantics of programming constructs involving locally scoped names typically makes use of stateful dynamic allocation: a set of currentlyused names forms part of the state and upon entering a scope the set is augmented by a new name bound to the scoped identifier. More abstractly, one can see this as a transformation of local scopes by expanding them outward to an implicit toplevel. By contrast, in a neglected paper from 1994, Odersky gave a stateless lambda calculus with locally scoped names whose dynamics contracts scopes inward. The properties of ‘Oderskystyle ’ local names are quite different from dynamically allocated ones and it has not been clear, until now, what is the expressive power of Odersky’s notion. We show that in fact it provides a direct semantics of locally scoped names from which the more familiar dynamic allocation semantics can be obtained by continuationpassing style (CPS) translation. More precisely, we show that there is a CPS translation of typed lambda calculus with dynamically allocated names (the PittsStark νcalculus) into Odersky’s λνcalculus which is computationally adequate with respect to observational equivalence in the two calculi. 1998 ACM Subject Classification F.3.2 operational semantics, F.3.3 functional constructs, F.4.1 lambda calculus and related systems.
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
(Show Context)
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.
Investigations into Algebra and Topology over Nominal Sets
, 2011
"... The last decade has seen a surge of interest in nominal sets and their applications to formal methods for programming languages. This thesis studies two subjects: algebra and duality in the nominal setting. In the first part, we study universal algebra over nominal sets. At the heart of our approach ..."
Abstract
 Add to MetaCart
The last decade has seen a surge of interest in nominal sets and their applications to formal methods for programming languages. This thesis studies two subjects: algebra and duality in the nominal setting. In the first part, we study universal algebra over nominal sets. At the heart of our approach lies the existence of an adjunction of descent type between nominal sets and a category of manysorted sets. Hence nominal sets are a full reflective subcategory of a manysorted variety. This is presented in Chapter 2. Chapter 3 introduces functors over manysorted varieties that can be presented by operations and equations. These are precisely the functors that preserve sifted colimits. They play a central role in Chapter 4, which shows how one can systematically transfer results of universal algebra from a manysorted variety to nominal sets. However, the equational logic obtained is more expressive than the nominal equational logic of Clouston and Pitts, respectively, the nominal algebra of Gabbay and Mathijssen. A uniform fragment of our logic with the same expressivity
MFPS 29 Preliminary Proceedings Normalization by evaluation and algebraic effects
"... We examine the interplay between computational effects and higher types. We do this by presenting a normalization by evaluation algorithm for a language with function types as well as computational effects. We use algebraic theories to treat the computational effects in the normalization algorithm i ..."
Abstract
 Add to MetaCart
(Show Context)
We examine the interplay between computational effects and higher types. We do this by presenting a normalization by evaluation algorithm for a language with function types as well as computational effects. We use algebraic theories to treat the computational effects in the normalization algorithm in a modular way. Our algorithm is presented in terms of an interpretation in a category of presheaves equipped with partial equivalence relations. The normalization algorithm and its correctness proofs are formalized in dependent type theory (Agda). Keywords:
Under consideration for publication in J. Functional Programming 1 The Arrow Calculus
"... We introduce the arrow calculus, a metalanguage for manipulating Hughes’s arrows with close relations both to Moggi’s metalanguage for monads and to Paterson’s arrow notation. Arrows are classically defined by extending lambda calculus with three constructs satisfying nine (somewhat idiosyncratic) l ..."
Abstract
 Add to MetaCart
We introduce the arrow calculus, a metalanguage for manipulating Hughes’s arrows with close relations both to Moggi’s metalanguage for monads and to Paterson’s arrow notation. Arrows are classically defined by extending lambda calculus with three constructs satisfying nine (somewhat idiosyncratic) laws; in contrast, the arrow calculus adds four constructs satisfying five laws (which fit two wellknown patterns). The five laws were previously known to be sound; we show that they are also complete, and hence that the five laws may replace the nine. 1
Full Abstraction for Nominal Scott Domains
, 2013
"... We develop a domain theory within nominal sets and present programming language constructs and results that can be gained from this approach. The development is based on the concept of orbitfinite subset, that is, a subset of a nominal sets that is both finitely supported and contained in finitely m ..."
Abstract
 Add to MetaCart
(Show Context)
We develop a domain theory within nominal sets and present programming language constructs and results that can be gained from this approach. The development is based on the concept of orbitfinite subset, that is, a subset of a nominal sets that is both finitely supported and contained in finitely many orbits. This concept appears prominently in the recent research programme of Bojańczyk et al. on automata over infinite languages, and our results establish a connection between their work and a characterisation of topological compactness discovered, in a quite different setting, by Winskel and Turner as part of a nominal domain theory for concurrency. We use this connection to derive a notion of Scott domain within nominal sets. The functionals for existential quantification over names and ‘definite description ’ over names turn out to be compact in the sense appropriate for nominal Scott domains. Adding them, together with parallelor, to a programming language for recursively defined higherorder functions with name abstraction and locally scoped names, we prove a full abstraction result for nominal Scott domains analogous to Plotkin’s classic result about PCF and conventional Scott domains: two program phrases have the same observable operational behaviour in all contexts if and only if they denote equal elements of the nominal Scott domain model. This is the first full abstraction result we know of for higherorder functions with local names that uses a domain theory based on ordinary extensional functions, rather than using the more intensional approach of game semantics.
Structural Recursion over Contextual Objects
"... Abstract—A core programming language is presented that allows structural recursion over open LF objects and contexts. The main technical tool is a coverage checking algorithm that also generates valid recursive calls. Termination of callbyvalue reduction is proven using a reducibility semantics. T ..."
Abstract
 Add to MetaCart
Abstract—A core programming language is presented that allows structural recursion over open LF objects and contexts. The main technical tool is a coverage checking algorithm that also generates valid recursive calls. Termination of callbyvalue reduction is proven using a reducibility semantics. This establishes consistency and allows the implementation of proofs about LF specifications as wellfounded recursive functions using simultaneous pattern matching. I.
Wellfounded Recursion over Contextual Objects
"... We present a core programming language that supports writing wellfounded structurally recursive functions using simultaneous pattern matching on contextual LF objects and contexts. The main technical tool is a coverage checking algorithm that also generates valid recursive calls. To establish cons ..."
Abstract
 Add to MetaCart
We present a core programming language that supports writing wellfounded structurally recursive functions using simultaneous pattern matching on contextual LF objects and contexts. The main technical tool is a coverage checking algorithm that also generates valid recursive calls. To establish consistency, we define a callbyvalue smallstep semantics and prove that every welltyped program terminates using a reducibility semantics. Based on the presented methodology we have implemented a totality checker as part of the programming and proof environment Beluga where it can be used to establish that a total Beluga program corresponds to a proof.
via nominal Scott domains
, 2014
"... Program equivalence in functional metaprogramming ..."
(Show Context)