Reasoning about concurrent objects

Embedded specifications in object-oriented (OO) languages such as Eiffel and Sather are based on a rigorous approach towards validation, compatibility and reusability of sequential programs. The underlying method of "design-by-contract" is based on Hoare logic for which concurrency extensions exist. However concurrent OO languages are still in their infancy. They have inherently imperative facets, such as object identity, sharing, and synchronisation, which cannot be ignored in the semantics. Any marriage of objects and concurrency requires a trade-off in a space of intertwined qualities. The paper summarises our work on a type system, calculus and an operational model for concurrent objects in a minimal extension of the Eiffel and Sather languages (cSather). We omit concurrency control constructs and instead use assertions as synchronisation constraints for asynchronous functions. We show that this provides a framework in which subtyping and concurrency can coexist.

[1]  Robert E. Tarjan,et al.  Reference machines require non-linear time to maintain disjoint sets , 1977, STOC '77.

[2]  Robert E. Tarjan,et al.  A Class of Algorithms which Require Nonlinear Time to Maintain Disjoint Sets , 1979, J. Comput. Syst. Sci..

[3]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[4]  Craig Chambers,et al.  An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes , 1989, OOPSLA 1989.

[5]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[6]  Craig Chambers,et al.  An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes , 1989, OOPSLA '89.

[7]  Craig Chambers,et al.  An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes , 1991 .

[8]  Zvi Galil,et al.  On pointers versus addresses , 1992, JACM.

[9]  Stephen M. Omohundro Sather Provides Nonproprietary Access to Object‐Oriented Programming , 1992 .

[10]  S. Omohundro,et al.  CLOS, Eiffel, and Sather , 1993 .

[11]  Satoshi Matsuoka,et al.  Analysis of inheritance anomaly in object-oriented concurrent programming languages , 1993 .

[12]  Andreas Paepcke Object-oriented programming: the CLOS perspective , 1993 .

[13]  Bertrand Meyer,et al.  Systematic concurrent object-oriented programming , 1993, CACM.

[14]  A. Udaya Shankar,et al.  An introduction to assertional reasoning for concurrent systems , 1993, CSUR.

[15]  Clemens A. Szyperski,et al.  Engineering a Programming Language: The Type and Class System of Sather , 1994, Programming Languages and System Architectures.

[16]  Jacques Chassin de Kergommeaux,et al.  Parallel logic programming systems , 1994, CSUR.

[17]  Heinz Schmidt,et al.  A Complexity Calculus for Object-Oriented Programs , 1994 .

[18]  Heinz W. Schmidt,et al.  Reasoning about Complexity of Object-Oriented Programs , 1994, PROCOMET.

[19]  Szabolcs Ferenczi,et al.  Guarded methods vs. inheritance anomaly: inheritance anomaly solved by nested guarded method calls , 1995, SIGP.

[20]  Michael Philippsen,et al.  Imperative Concurrent Object-Oriented Languages , 1995 .

[21]  Michael Philippsen,et al.  Imperative Concurrent Object-Oriented Languages: An Annotated Bibliography , 1995 .