A Unifying Framework for Process Calculus Semantics of Concurrent Object-Based Languages and Feature

We have outlined a framework for describing the semantics of concurrent object-based languages and features. We believe that such a framework will be essential for describing the semantics of language features, comparing the different language design approaches and the interaction of features such as inheritance and synchronization. We have also presented a novel, high-level approach for modelling class inheritance in process calculus based semantics which abstracts from operational details such as method lookup tables. This approach may be used to describe different approaches for inheritance and the interaction of inheritance and concurrency in a formal setting. Although it was not discussed in this paper the approach can be used to model multiple inheritance as well as various schemes concerning the encapsulation between classes and subclasses[12]. We are currently pursuing research along the following directions: • Test, extend, refine the basic framework in order to express more object-based features in a most direct way. • Experiment with other process calculi. Determine the parts of the framework that are CCS dependent, examine whether features supported in other calculi as for example the π-calculus[6], are better suited for the further development of the framework. • Examine the equivalence on objects induced by equivalence relations on agents and how they can be used to express substitutability and object reuse requirements. restriction of the access sort of method agents in the definition of BasicBehavior c the call m events generated by the request handler for executing method m will only be visible to the method agent for m of the most specialized class that defines m. This is illustrated in figure 3. In some languages as for instance Smalltalk-80[3] the pseudo-variable super is used, in an expression like super m1: x, to indicate that the search for a method matching the method selector m should start at the object's superclass method dictionary. We capture the semantics of super as follows: First the semantics for an expression involving super is given as: This way the event will be able to get out of the restriction of the access sorts for methods of the class. In the enclosing scope this event will be intercepted by the Super agent and trans-duced to a event which is released outside of the class scope of restriction. Thus, the " search " for a matching method starts at the superclass level. A method invocation through the pseudo-variable self appearing in any …