Formalizing Composable Software Systems — A Research Agenda

Flexibility is achieved in open systems by adopting software architectures that allow software components to be easily plugged in, adapted and exchanged. But open systems are generally concurrent, distributed and heterogeneous in addition to being adaptable. Ad hoc approaches to specifying component frameworks can lead to unexpected semantic conflicts. We propose, instead, to develop a rigorous foundation for composable software systems by a series of experiments in modelling concurrent and object-based software abstractions as composable, communicating processes. Eventually we hope to identify and realize the most useful compositional idioms as a composition language for open systems specification.

[1]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[2]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

[3]  Oscar Nierstrasz,et al.  Towards and Object Calculus , 1991, Object-Based Concurrent Computing.

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

[5]  Serge Demeyer,et al.  Making design patterns explicit in FACE: a frame work adaptive composition environment , 1997, ESEC '97/FSE-5.

[6]  Linda G. DeMichiel,et al.  The Common Lisp Object System: An Overview , 1987, ECOOP.

[7]  Luca Cardelli,et al.  On Binary Methods , 1995, Theory Pract. Object Syst..

[8]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[9]  Else K. Nordhagen Omicron, An Object-Oriented Calculus , 1997 .

[10]  Henry McGilton,et al.  The JavaTM Language Environment , 1998 .

[11]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[12]  Oscar Nierstrasz,et al.  Research directions in software composition , 1995, CSUR.

[13]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[14]  John Lamping,et al.  Typing the specialization interface , 1993, OOPSLA '93.

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

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

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

[18]  Benjamin C. Pierce,et al.  Simple type-theoretic foundations for object-oriented programming , 1994, Journal of Functional Programming.