Results 1  10
of
47
From Rewrite Rules to Bisimulation Congruences
 THEORETICAL COMPUTER SCIENCE
, 1998
"... The dynamics of many calculi can be most clearly defined by a reduction semantics. To work with a calculus, however, an understanding of operational congruences is fundamental; these can often be given tractable definitions or characterisations using a labelled transition semantics. This paper consi ..."
Abstract

Cited by 75 (2 self)
 Add to MetaCart
The dynamics of many calculi can be most clearly defined by a reduction semantics. To work with a calculus, however, an understanding of operational congruences is fundamental; these can often be given tractable definitions or characterisations using a labelled transition semantics. This paper considers calculi with arbitrary reduction semantics of three simple classes, firstly ground term rewriting, then leftlinear term rewriting, and then a class which is essentially the action calculi lacking substantive name binding. General definitions of labelled transitions are given in each case, uniformly in the set of rewrite rules, and without requiring the prescription of additional notions of observation. They give rise to bisimulation congruences. As a test of the theory it is shown that bisimulation for a fragment of CCS is recovered. The transitions generated for a fragment of the Ambient Calculus of Cardelli and Gordon, and for SKI combinators, are also discussed briefly.
A bisimulation for type abstraction and recursion
 SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 2005
"... We present a bisimulation method for proving the contextual equivalence of packages in λcalculus with full existential and recursive types. Unlike traditional logical relations (either semantic or syntactic), our development is “elementary, ” using only sets and relations and avoiding advanced mach ..."
Abstract

Cited by 56 (6 self)
 Add to MetaCart
(Show Context)
We present a bisimulation method for proving the contextual equivalence of packages in λcalculus with full existential and recursive types. Unlike traditional logical relations (either semantic or syntactic), our development is “elementary, ” using only sets and relations and avoiding advanced machinery such as domain theory, admissibility, and ⊤⊤closure. Unlike other bisimulations, ours is complete even for existential types. The key idea is to consider sets of relations—instead of just relations—as bisimulations.
A fully abstract may testing semantics for concurrent objects
 In Proceedings of LICS ’02. IEEE, Computer
, 2002
"... This paper provides a fully abstract semantics for a variant of the concurrent object calculus. We define may testing for concurrent object components and then characterise it using a trace semantics inspired by UML interaction diagrams. The main result of this paper is to show that the trace semant ..."
Abstract

Cited by 50 (3 self)
 Add to MetaCart
(Show Context)
This paper provides a fully abstract semantics for a variant of the concurrent object calculus. We define may testing for concurrent object components and then characterise it using a trace semantics inspired by UML interaction diagrams. The main result of this paper is to show that the trace semantics is fully abstract for may testing. This is the first such result for a concurrent object language. 1.
A Congruence Theorem for Structured Operational Semantics of HigherOrder Languages
, 1997
"... In this paper we describe the promoted tyft/tyxt rule format for defining higherorder languages. The rule format is a generalization of Groote and Vaandrager 's tyft/tyxt format in which terms are allowed as labels on transitions in rules. We prove that bisimulation is a congruence for any la ..."
Abstract

Cited by 39 (0 self)
 Add to MetaCart
In this paper we describe the promoted tyft/tyxt rule format for defining higherorder languages. The rule format is a generalization of Groote and Vaandrager 's tyft/tyxt format in which terms are allowed as labels on transitions in rules. We prove that bisimulation is a congruence for any language defined in promoted tyft/tyxt format and demonstrate the usefulness of the rule format by presenting promoted tyft/tyxt definitions for the lazy calculus, CHOCS and the ßcalculus. 1 Introduction For a programming language definition that uses bisimulation as the notion of equivalence, it is desirable for the bisimulation relation to be compatible with the language constructs; i.e. that bisimulation be a congruence. Several rule formats have been defined, so that as long as a definition satisfies certain syntactic constraints, then the defined bisimulation relation is guaranteed to be a congruence. However these rule formats have not been widely used for defining languages with higher...
Imperative Objects and Mobile Processes
 MATH. STRUCT. COMPUT. SCI
, 1998
"... An interpretation of Abadi and Cardelli's firstorder Imperative Object Calculus into a typed picalculus is presented. The interpretation validates the subtyping relation and the typing judgements of the Object Calculus, and is computationally adequate. The proof of computational adequacy make ..."
Abstract

Cited by 39 (11 self)
 Add to MetaCart
An interpretation of Abadi and Cardelli's firstorder Imperative Object Calculus into a typed picalculus is presented. The interpretation validates the subtyping relation and the typing judgements of the Object Calculus, and is computationally adequate. The proof of computational adequacy makes use of (a picalculus version) of ready simulation, and of a factorisation of the interpretation into a functional part and a very simple imperative part. The interpretation can be used to compare and contrast the Imperative and the Functional Object Calculi, and to prove properties about them, within a unified framework.
Compilation and equivalence of imperative objects
 Department of Computer Science, University of Aarhus
, 1998
"... Abstract. We adopt the untyped imperative object calculus of Abadi and Cardelli as a minimal setting in which to study problems of compilation and program equivalence that arise when compiling objectoriented languages. Our main result is a direct proof, via a smallstep unloading machine, of the c ..."
Abstract

Cited by 36 (4 self)
 Add to MetaCart
(Show Context)
Abstract. We adopt the untyped imperative object calculus of Abadi and Cardelli as a minimal setting in which to study problems of compilation and program equivalence that arise when compiling objectoriented languages. Our main result is a direct proof, via a smallstep unloading machine, of the correctness of compilation to a closurebased abstract machine. Our second result is that contextual equivalence of objects coincides with a form of Mason and Talcott's CIU equivalence; the latter provides a tractable means of establishing operational equivalences. Finally, we prove correct an algorithm, used in our prototype compiler, for statically resolving method o sets. This is the rst study of correctness of an objectoriented abstract machine, and of CIU equivalence for an objectoriented language. Motivation This paper collates and extends a variety of operational techniques for describing and reasoning about programming languages and their implementation. We focus on implementation of imperative objectoriented programs. The language we describe is essentially the untyped imperative object calculus of Abadi and Cardelli 1{3], a small but extremely rich language that directly accommodates objectoriented, imperative and functional programming styles. Abadi and Cardelli invented the calculus to serve as a foundation for understanding objectoriented programming; in particular, they use the calculus to develop a range of increasingly sophisticated type systems for objectoriented programming. We have implemented the calculus as part of a broader project to investigate concurrent objectoriented languages. This paper develops formal foundations and veri cation methods to document and better understand various aspects of our implementation. Our work recasts techniques originating in studies of the calculus in the setting of the imperative object calculus. In particular, our reduction relation for the object calculus, our design of an objectoriented abstract machine, our compiler correctness proof and our notion of program equivalence are all based on earlier studies of the calculus. This paper is the rst application of these techniques to an object calculus and shows they may easily be reused in an objectoriented setting. Our system compiles the imperative object calculus to bytecodes for an abstract machine, implemented in C, based on the ZAM of Leroy's CAML Light
Relational Reasoning about Contexts
 HIGHER ORDER OPERATIONAL TECHNIQUES IN SEMANTICS, PUBLICATIONS OF THE NEWTON INSTITUTE
, 1998
"... ..."
(Show Context)
Characterizing Convergent Terms in Object Calculi via Intersection Types
"... We give a simple characterization of convergent terms in Abadi and Cardelli untyped Object Calculus (&calculus) via intersection types. We consider a calculus with records and its intersection type assignment system. We prove that convergent terms are characterized by their types. The cha ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
We give a simple characterization of convergent terms in Abadi and Cardelli untyped Object Calculus (&calculus) via intersection types. We consider a calculus with records and its intersection type assignment system. We prove that convergent terms are characterized by their types. The characterization is then inherited by the object calculus via selfapplication interpretation.
Asynchronous process calculi: the firstorder and higherorder paradigms (Tutorial)
, 1999
"... ..."
Objects as Mobile Processes
 RESEARCH SERIES RS9638, BRICS
, 1996
"... The object calculus of Abadi and Cardelli [AC96, AC94b, AC94a] is intended as model of central aspects of objectoriented programming languages. In this paper we encode the object calculus in the asynchronous picalculus without matching and investigate the properties of our encoding. ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
The object calculus of Abadi and Cardelli [AC96, AC94b, AC94a] is intended as model of central aspects of objectoriented programming languages. In this paper we encode the object calculus in the asynchronous picalculus without matching and investigate the properties of our encoding.