Results 11  20
of
35
A Confluent Relational Calculus for HigherOrder Programming with Constraints
 Proc. 1st Int. Conference on Constraints in Computational Logics (CCL'94
, 1994
"... . We present the aecalculus, a relational calculus parametrized with a logical constraint system. The aecalculus provides for higherorder relational programming with firstorder constraints, and subsumes higherorder functional programming as a special case. It captures important aspects of the co ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
. We present the aecalculus, a relational calculus parametrized with a logical constraint system. The aecalculus provides for higherorder relational programming with firstorder constraints, and subsumes higherorder functional programming as a special case. It captures important aspects of the concurrent constraint programming language Oz. We prove the uniform confluence of the aecalculus. Uniform confluence implies that all maximal derivations issuing from a given expression have equal length. But even confluence of a nonfunctional calculus modelling computation with partial information is interesting on its own right. 1 Introduction We present the aecalculus, a relational calculus parametrized by a logical constraint system. The aecalculus provides for higherorder relational programming with firstorder constraints. The aecalculus captures interesting aspects of the concurrent constraint programming language Oz [3]. It is a minimalistic subcalculus of the OzCalculus [12] wh...
Note on algol and conservatively extending functional programming
 Journal of Functional Programming
, 1995
"... ..."
Amalgams: Names and Name Capture in a Declarative Framework
, 1998
"... this paper, we address the problem of names and name capture on its own by designing, through the use of three operators, a complete and consistent mechanism of name capture for a declarative framework. We perceive expressions with free names as incomplete expressions which will be dynamically compl ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
(Show Context)
this paper, we address the problem of names and name capture on its own by designing, through the use of three operators, a complete and consistent mechanism of name capture for a declarative framework. We perceive expressions with free names as incomplete expressions which will be dynamically completed by a name capture mechanism. The formalism allows the denition of rstclass environments (which can be the result of a computation). We apply this mechanism to model distributed incremental program construction and to dene an object oriented programming style in a declarative language
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 3 (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.
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

Cited by 2 (1 self)
 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.
Denotational Semantics Using an OperationallyBased Term Model
 In Proc. 24th ACM Symposium on Principles of Programming Languages
, 1997
"... We introduce a method for proving the correctness of transformations of programs in languages like Scheme and ML. The method consists of giving the programs a denotational semantics in an operationallybased term model in which interaction is the basic observable, and showing that the transformation ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We introduce a method for proving the correctness of transformations of programs in languages like Scheme and ML. The method consists of giving the programs a denotational semantics in an operationallybased term model in which interaction is the basic observable, and showing that the transformation is meaningpreserving. This allows us to consider correctness for programs that interact with their environment without terminating, and also for transformations that change the internal store behavior of the program. We illustrate the technique on one of the MeyerSieber examples, and we use it to prove the correctness of assignment elimination for Scheme. The latter is an important but subtle step for Scheme compilers; we believe ours is the first proof of its correctness. 1 Introduction Compilers for higherorder languages typically perform elaborate program transformations in order to improve performance. Such transformations often change the storage behavior of the program. For concre...
A Mode System for Flexible Alias Protection
 In Formal Methods Pacific (FMP'98
, 1998
"... Objectoriented programming languages allow interobject aliasing to represent linked data structures and networks of interacting objects. Aliasing complicates formal reasoning about programs, as it can occur anywhere in a program. In our mode system programs are annotated with modes that indica ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
Objectoriented programming languages allow interobject aliasing to represent linked data structures and networks of interacting objects. Aliasing complicates formal reasoning about programs, as it can occur anywhere in a program. In our mode system programs are annotated with modes that indicate object ownership and control the extent of object aliases. By localising aliases, our mode system provides a context for formal reasoning about object systems. Being statically checkable our system offers a practical target for the formal refinement of objectbased specifications. 1
Who's Afraid of Ownership Types?
, 1999
"... Ownership Types prevent representation exposure  unauthorised access to the encapsulated implementation of an object. Unfortunately, existing ownership type systems are too strict, do not support subtyping, and exclude many important objectoriented idioms, such as iterators, objects with multiple ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Ownership Types prevent representation exposure  unauthorised access to the encapsulated implementation of an object. Unfortunately, existing ownership type systems are too strict, do not support subtyping, and exclude many important objectoriented idioms, such as iterators, objects with multiple interfaces, and initialisation with preexisting objects. We develop a more flexible model of containment by abstractly modeling the two sides of object access, that is, which objects an object can access and which objects can access it. Using a variant of Abadi and Cardelli's object calculus as a vehicle, we provide an account of object ownership which supports subtyping and allows more flexible object graph structure.
A Syntactic Method for Proving Observational Equivalences
, 1993
"... We present a syntactic method for proving observational equivalences in reduction systems. The method is based on establishing a weak diamond property for critical pairs. It has been used successfully in proofs on the observational equivalence theories of var and . 1 Introduction Observational equ ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
We present a syntactic method for proving observational equivalences in reduction systems. The method is based on establishing a weak diamond property for critical pairs. It has been used successfully in proofs on the observational equivalence theories of var and . 1 Introduction Observational equivalence is the most comprehensive notion of equality of between program fragments. Usually, it is what programmers have in mind when they say that two program fragments are interchangeable. The observational equivalences of a language define thus the transformations that are admissible in it. Hence, knowing what those equivalences are is important in areas such as program verification, transformational programming, partial evaluation and code optimization. Intuitively, two terms are observationally equivalent if they cannot be distinguished by some experiment. Experiments place a program fragment in a context and observe the output of the resulting program. If each experiment yields the sam...
XX Denotational Semantics with Nominal Scott Domains
"... When defining computations over syntax as data, one often runs into tedious issues concerning αequivalence and semantically correct manipulations of binding constructs. Here we study a semantic framework in which these issues can be dealt with automatically by the programming language. We take the ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
When defining computations over syntax as data, one often runs into tedious issues concerning αequivalence and semantically correct manipulations of binding constructs. Here we study a semantic framework in which these issues can be dealt with automatically by the programming language. We take the userfriendly ‘nominal ’ approach in which bound objects are named. In particular, we develop a version of Scott domains within nominal sets and define two programming languages whose denotational semantics are based on those domains. The first language, λνPCF, is an extension of Plotkin’s PCF with names that can be swapped, tested for equality and locally scoped; although simple, it already exposes most of the semantic subtleties of our approach. The second language, PNA, extends the first with name abstraction and concretion so that it can be used for metaprogramming over syntax with binders. For both languages, 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 languages combining higherorder functions with some form of locally scoped names which uses a domain theory based on ordinary extensional functions, rather than using the more intensional approach of game semantics.