Algebraic theory of processes
A Theory of Objects
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
A Fully Abstract May Testing Semantics for Concurrent Objects
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Observable Properties of Higher Order Functions that Dynamically Create Local Names, or What's new?
MFCS '93 Proceedings of the 18th International Symposium on Mathematical Foundations of Computer Science
Graph Types for Monadic Mobile Processes
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
A Fully-Abstract Model for the p-calculus
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Full Abstraction for First-Order Objects with Recursive Types and Subtyping
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
Validating Behavioral Component Interfaces in Rewriting Logic
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Heap-Abstraction for an object-oriented calculus with thread classes
CiE'06 Proceedings of the Second conference on Computability in Europe: logical Approaches to Computational Barriers
Full abstraction at package boundaries of object-oriented languages
SBMF'11 Proceedings of the 14th Brazilian conference on Formal Methods: foundations and Applications
Verifying backwards compatibility of object-oriented libraries using Boogie
Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
Validating Behavioral Component Interfaces in Rewriting Logic
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Hi-index | 0.00 |
The concurrent object calculus has been investigated as a core calculus for imperative, object-oriented languages with multithreading and heap-allocated objects. The combination of this form of concurrency with objects corresponds to features known from the popular language Java. One distinctive feature, however, of the concurrent object calculus is that it is object-based, whereas the mainstream of object-oriented languages is class-based. This work explores the semantical consequences of introducing classes to the calculus. Considering classes as part of a component makes instantiation a possible interaction between component and environment. A striking consequence is that to characterize the observable behavior we must take connectivity information into account, i.e., the way objects may have knowledge of each other. In particular, unconnected environment objects can neither determine the absolute order of interaction and furthermore cannot exchange information to compare object identities. We formulate an operational semantics that incorporates the connectivity information into the scoping mechanism of the calculus. As instantiation itself is unobservable, objects are instantiated only when accessed for the first time (“lazy instantiation”). Furthermore we use a corresponding trace semantics for full abstraction wrt. a may-testing based notion of observability.