Modelling Objects in PICT

For the development of present-day applications, programming languages supporting high order abstractions are needed. These high order abstractions are called components. Since most of the currently available programming languages and systems fail to provide sufficient support for specifying and implementing components, we are developing a new language suitable for software composition. It is not clear how such a language will look like, what kind of abstractions it must support, and what kind of formal model it will be based on. Object-oriented programming languages address some of the needs of present-day applications, and it is therefore obvious to integrate some of their concepts and abstractions in the language. As a first step towards such an integration, we have to define an object model. Since no generally accepted formal object model exists, we have chosen the Pi-calculus as a basis for modelling. In order to find a suitable object model, we have built up an object modelling workbench for Pict, an implementation of an asynchronous Pi-calculus. In this work, we define a first abstract object model, describe several implementations of the object model in Pict, and discuss interesting features and possible extensions.

[1]  Cliff B. Jones A pi-Calculus Semantics for an Object-Based Design Notation , 1993, CONCUR.

[2]  Oscar Nierstrasz,et al.  Component-oriented software technology , 1995 .

[3]  Mehmet Aksit On the Design of the Object-Oriented Language Sina , 1989 .

[4]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[5]  David Walker,et al.  Objects in the pi-Calculus , 1992, Inf. Comput..

[6]  R. Kent Dybvig,et al.  The Scheme Programming Language , 1995 .

[7]  Benjamin C. Pierce,et al.  Concurrent Objects in a Process Calculus , 1994, Theory and Practice of Parallel Programming.

[8]  Patrick Varone,et al.  Implementation of `Generic Synchronization Policies' in Pict , 1996 .

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

[10]  D. Walker,et al.  A Calculus of Mobile Processes, Part Ii , 1989 .

[11]  Oscar Nierstrasz,et al.  Towards an Object Calculus ∗ , 1991 .

[12]  Oscar Nierstrasz,et al.  Requirements for a Composition Language , 1994, ECOOP Workshop.

[13]  Sami S. Brandt,et al.  The Design of a Meta-Level Architecture for the BETA Language , 1995 .

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

[15]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[16]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

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

[18]  Oscar Nierstrasz,et al.  Component-oriented software development , 1992, CACM.

[19]  William R. Cook,et al.  A denotational semantics of inheritance , 1989 .

[20]  Michel Beaudouin-Lafon Object-oriented languages - basic principles and programming techniques , 1994 .

[21]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and Its Correctness , 1994, Inf. Comput..

[22]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[23]  Louis Marie Johannes Bergmans,et al.  Composing Concurrent Objects , 1994 .

[24]  David N. Turner,et al.  The polymorphic Pi-calculus : theory and implementation , 1996 .

[25]  Manuel Barrio Solórzano Estudio de aspectos dinámicos en sistemas orientados al objeto , 1995 .

[26]  Tom Mens,et al.  A survey on formal models for OO , 1994 .