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 left-linear 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 Higher-Order Languages
, 1997
"... In this paper we describe the promoted tyft/tyxt rule format for defining higher-order 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 higher-order 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 first-order Imperative Object Calculus into a typed pi-calculus 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 first-order Imperative Object Calculus into a typed pi-calculus 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 pi-calculus 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 object-oriented languages. Our main result is a direct proof, via a small-step 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 object-oriented languages. Our main result is a direct proof, via a small-step unloading machine, of the correctness of compilation to a closure-based 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 object-oriented abstract machine, and of CIU equivalence for an object-oriented 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 object-oriented 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 object-oriented programming; in particular, they use the calculus to develop a range of increasingly sophisticated type systems for object-oriented programming. We have implemented the calculus as part of a broader project to investigate concurrent object-oriented 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 object-oriented 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 re-used in an object-oriented 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 self-application interpretation.
Asynchronous process calculi: the first-order and higher-order paradigms (Tutorial)
, 1999
"... ..."
Objects as Mobile Processes
- RESEARCH SERIES RS-96-38, BRICS
, 1996
"... The object calculus of Abadi and Cardelli [AC96, AC94b, AC94a] is intended as model of central aspects of object-oriented programming languages. In this paper we encode the object calculus in the asynchronous pi-calculus 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 object-oriented programming languages. In this paper we encode the object calculus in the asynchronous pi-calculus without matching and investigate the properties of our encoding.