Results 11  20
of
114
A Functional Theory of Local Names
, 1994
"... ## is an extension of the #calculus with a binding construct for local names. The extension has properties analogous to classical #calculus and preserves all observational equivalences of #. It is useful as a basis for modeling widespectrum languages that build on a functional core. 1 Introducti ..."
Abstract

Cited by 35 (2 self)
 Add to MetaCart
## is an extension of the #calculus with a binding construct for local names. The extension has properties analogous to classical #calculus and preserves all observational equivalences of #. It is useful as a basis for modeling widespectrum languages that build on a functional core. 1 Introduction Recentyears have given us a good deal of theoretical research on the interaction of imperative programming #exempli#ed byvariable assignment# and functional programming #exempli#ed by higher order functions# #3,6,19,21, 24#. The common method of all these works is to propose a #calculus extended with imperative features and to carry out an exploration of the operational semantics of the new calculus. Based on our own experience in devising such an extended # calculus #13#, the presentwork singles out the name, whose only observational property is its identity, as an essential componentofany such extension. We present a simple extension of the pure #calculus with names; we showby ex...
Imperative selfadjusting computation
 In POPL ’08: Proceedings of the 35th annual ACM SIGPLANSIGACT symposium on Principles of programming languages
, 2008
"... Recent work on selfadjusting computation showed how to systematically write programs that respond efficiently to incremental changes in their inputs. The idea is to represent changeable data using modifiable references, i.e., a special data structure that keeps track of dependencies between read an ..."
Abstract

Cited by 35 (17 self)
 Add to MetaCart
(Show Context)
Recent work on selfadjusting computation showed how to systematically write programs that respond efficiently to incremental changes in their inputs. The idea is to represent changeable data using modifiable references, i.e., a special data structure that keeps track of dependencies between read and writeoperations, and to let computations construct traces that later, after changes have occurred, can drive a change propagation algorithm. The approach has been shown to be effective for a variety of algorithmic problems, including some for which adhoc solutions had previously remained elusive. All previous work on selfadjusting computation, however, relied on a purely functional programming model. In this paper, we show that it is possible to remove this limitation and support modifiable references that can be written multiple times. We formalize this using a language AIL for which we define evaluation and changepropagation semantics. AIL closely resembles a traditional higherorder imperative programming language. For AIL we state and prove consistency, i.e., the property that although the semantics is inherently nondeterministic, different evaluation paths will still give observationally equivalent results. In the imperative setting where pointer graphs in the store can form cycles, our previous proof techniques do not apply. Instead, we make use of a novel form of a stepindexed logical relation that handles modifiable references. We show that AIL can be realized efficiently by describing implementation strategies whose overhead is provably constanttime per primitive. When the number of reads and writes per modifiable is bounded by a constant, we can show that change propagation becomes as efficient as it was in the pure case. The general case incurs a slowdown that is logarithmic in the maximum number of such operations. We use DFS and related algorithms on graphs as our running examples and prove that they respond to insertions and deletions of edges efficiently. 1.
Reasoning about local variables with operationallybased logical relations
 In LICS
, 1996
"... A parametric logical relation between the phrases of an Algollike language is presented. Its definition involves the structural operational semantics of the language, but was inspired by recent denotationallybased work of O’Hearn and Reynolds on translating Algol into a predicatively polymorphic l ..."
Abstract

Cited by 34 (3 self)
 Add to MetaCart
(Show Context)
A parametric logical relation between the phrases of an Algollike language is presented. Its definition involves the structural operational semantics of the language, but was inspired by recent denotationallybased work of O’Hearn and Reynolds on translating Algol into a predicatively polymorphic linear lambda calculus. The logical relation yields an applicative characterisation of contextual equivalence for the language and provides a useful (and complete) method for proving equivalences. Its utility is illustrated by giving simple and direct proofs of some contextual equivalences, including an interesting equivalence due to O’Hearn which hinges upon the undefinability of ‘snapback ’ operations (and which goes beyond the standard suite of ‘MeyerSieber ’ examples). Whilst some of the mathematical intricacies of denotational semantics are avoided, the hard work in this operational approach lies in establishing the ‘fundamental property’ for the logical relation—the proof of which makes use of a compactness property of fixpoint recursion with respect to evaluation of phrases. But once this property has been established, the logical relation provides a verification method with an attractively low mathematical overhead. 1.
The RegularLanguage Semantics of SecondOrder Idealized ALGOL
, 2003
"... We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a nontrivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inh ..."
Abstract

Cited by 33 (8 self)
 Add to MetaCart
We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a nontrivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inherits its good theoretical properties; in fact, for secondorder IA taken as a standalone language the regular language model is fully abstract. The method is algorithmic and formal, which makes it suitable for automation. We show how reasoning is carried out using a metalanguage of extended regular expressions, a language for which equivalence is decidable.
Notes on Sconing and Relators
, 1993
"... This paper describes a semantics of typed lambda calculi based on relations. The main mathematical tool is a categorytheoretic method of sconing, also called glueing or Freyd covers. Its correspondence to logical relations is also examined. 1 Introduction Many modern programming languages feature ..."
Abstract

Cited by 30 (0 self)
 Add to MetaCart
(Show Context)
This paper describes a semantics of typed lambda calculi based on relations. The main mathematical tool is a categorytheoretic method of sconing, also called glueing or Freyd covers. Its correspondence to logical relations is also examined. 1 Introduction Many modern programming languages feature rather sophisticated typing mechanisms. In particular, languages such as ML include polymorphic data types, which allow considerable programming flexibility. Several notions of polymorphism were introduced into computer science by Strachey [Str67], among them the important notion of parametric polymorphism. Strachey's intuitive definition is that a polymorphic function is parametric if it has a uniformly given algorithm in all types, that is, if the function's behavior is independent of the type at which the function is instantiated. Reynolds [Rey83] proposed a mathematical definition of parametric polymorphic functions by means of invariance with respect to certain relations induced by typ...
The Essence of Parallel Algol
 Information and Computation
, 1997
"... We consider a parallel Algollike language, combining procedures with sharedvariable parallelism. Procedures permit encapsulation of common parallel programming idioms. Local variables provide a way to restrict interference between parallel commands. We provide a denotational semantics for this lan ..."
Abstract

Cited by 29 (11 self)
 Add to MetaCart
(Show Context)
We consider a parallel Algollike language, combining procedures with sharedvariable parallelism. Procedures permit encapsulation of common parallel programming idioms. Local variables provide a way to restrict interference between parallel commands. We provide a denotational semantics for this language, simultaneously adapting "possible worlds" [Rey81, Ole82] to the parallel setting and generalizing "transition traces" [Bro93] to the procedural setting. This semantics supports reasoning about safety and liveness properties of parallel programs, and validates a number of natural laws of program equivalence based on noninterference properties of local variables. The semantics also validates familiar laws of functional programming. We also provide a relationally parametric semantics, generalizing [Bro93] to permit reasoning about relationpreserving properties of programs, and adapting work of O'Hearn and Tennent [OT95] to the parallel setting. This semantics supports standard methods ...
A Theory of Recursive Domains with Applications to Concurrency
 In Proc. of LICS ’98
, 1997
"... Marcelo Fiore , Glynn Winskel (1) BRICS , University of Aarhus, Denmark (2) LFCS, University of Edinburgh, Scotland December 1997 Abstract We develop a 2categorical theory for recursively defined domains. ..."
Abstract

Cited by 24 (14 self)
 Add to MetaCart
(Show Context)
Marcelo Fiore , Glynn Winskel (1) BRICS , University of Aarhus, Denmark (2) LFCS, University of Edinburgh, Scotland December 1997 Abstract We develop a 2categorical theory for recursively defined domains.
Algebra of logic programming
 International Conference on Logic Programming
, 1999
"... At present, the field of declarative programming is split into two main areas based on different formalisms; namely, functional programming, which is based on lambda calculus, and logic programming, which is based on firstorder logic. There are currently several language proposals for integrating th ..."
Abstract

Cited by 24 (4 self)
 Add to MetaCart
(Show Context)
At present, the field of declarative programming is split into two main areas based on different formalisms; namely, functional programming, which is based on lambda calculus, and logic programming, which is based on firstorder logic. There are currently several language proposals for integrating the expressiveness of these two models of computation. In this thesis we work towards an integration of the methodology from the two research areas. To this end, we propose an algebraic approach to reasoning about logic programs, corresponding to the approach taken in functional programming. In the first half of the thesis we develop and discuss a framework which forms the basis for our algebraic analysis and transformation methods. The framework is based on an embedding of definite logic programs into lazy functional programs in Haskell, such that both the declarative and the operational semantics of the logic programs are preserved. In spite of its conciseness and apparent simplicity, the embedding proves to have many interesting properties and it gives rise to an algebraic semantics of logic programming. It also allows us to reason about logic programs in a simple calculational style, using rewriting and the algebraic laws of combinators. In the embedding, the meaning of a logic program arises compositionally from the meaning of its constituent subprograms and the combinators that connect them. In the second half of the thesis we explore applications of the embedding to the algebraic transformation of logic programs. A series of examples covers simple program derivations, where our techniques simplify some of the current techniques. Another set of examples explores applications of the more advanced program development techniques from the Algebra of Programming by Bird and de Moor [18], where we expand the techniques currently available for logic program derivation and optimisation. To my parents, Sandor and Erzsebet. And the end of all our exploring Will be to arrive where we started And know the place for the first time.
Reflexive Graphs and Parametric Polymorphism
, 1993
"... this paper is to understand why that is a parametric categorical model. In [10] Ma and Reynolds propose a parametricity hypothesis for a functor between categorical models of polymorphism which essentially requires that there is an extension of (a certain form of) an identity relation functor which ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
this paper is to understand why that is a parametric categorical model. In [10] Ma and Reynolds propose a parametricity hypothesis for a functor between categorical models of polymorphism which essentially requires that there is an extension of (a certain form of) an identity relation functor which preserve the model structure. There is no mention in the paper of any case when the parametricity hypothesis is satified, nor if there is a canonical completion of a category to one which satisfies the hypothesis. We shall suggest how the construction of a PLcategory of relations on a given category presented in [10] can be viewed as a "parametric completion". We shall also follow the suggestion of Ma in [9] that subtyping is a kind of parametricity requirement and show how to fit subtyping in the same setup. The basic idea is to use reflexive graphs of categories as in [12]. We shall employ their construction to present a kind of parametric completion of a given category. We also give a different presentation of the RELconstruction in [10], and use it to discuss some examples. We show in particular that the RELconstruction acts (essentially) in the same way on a category and on its completion. Hence it follows that the identity functor on the completion satisfies the parametricity hypothesis. Discussions with Eugenio Moggi, Peter O'Hearn, Edmund Robinson, and Thomas Streicher were very useful. Paul Taylor's beutiful diagram macros were used for typesetting all the diagrams in the text. 1 Graphs of categories