Formalizing Composable Software Systems — A Research Agenda

  • O. Nierstrasz
  • J.-G. Schneider
  • M. Lumpe
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT)


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.


Components Object-Oriented Programming Software Composition π calculus PICT 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Lodewijk Bergmans, “Composing Concurrent Objects,” PhD Thesis, University of Twente, 1994.Google Scholar
  2. [2]
    Soren Brandt and René W. Schmidt, “The Design of a Meta-Level Architecture for the BETA Language,” Proceedings of META 85: Workshop on Advances in Metaohject Protocols and Reflection at ECOOP 85, August 1995.Google Scholar
  3. [3]
    Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, The Hopkins Objects Group, Gary T. Leavens and Benjamin Pierce, On Binary Methods 1996, To appear in Theory and Practice of Object Systems.Google Scholar
  4. [4]
    Shigru Chiba, “A Metaobject Protocol for C++,” Proceedings of OOPSLA 85, ACM SIGPLAN Notices, vol. 30, no. 10, October 1995, pp. 285–299.Google Scholar
  5. [5]
    William Cook and Jens Palsberg, “A Denotational Semantics of Inheritance and its Correctness”, Proceedings OOPSLA 89, ACM SIGPLAN Notices vol. 24, no. 10, Oct. 1989, pp. 433–443.CrossRefGoogle Scholar
  6. [6]
    Laurent Dami, “Functions, Records and Compatibility in the Lambda N Calculus,” Object-Oriented Software Composition O. Nierstrasz and D. Tsichritzis (Ed.), Prentice Hall, 1995, pp. 153–174.Google Scholar
  7. [7]
    Karsten M. Decker, Jiri J. Dvorak and René M. Rehmann, “A tool environment for parallel programming — User-driven development of a novel programming environment for distributed memory parallel processor systems,” Priority Programme Injonnatics Research, Information Conference Module 3 on Massively parallel systems, November 1994, pp. 40–47.Google Scholar
  8. [8]
    Linda G. DeMichiel and Richard P. Gabriel, “The Common Lisp Object System: An Overview,” Proceedings ECOOP 87, J. Bézivin, J-M. Hullot, P. Cointe and H. Lieberman (Ed.), LNCS 276, Springer-Verlag, Paris, France, June 15–17, 1987, pp. 151–170.Google Scholar
  9. [9]
    Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns, Addison Wesley, Reading, MA, 1995.Google Scholar
  10. [10]
    Adele Goldberg and David Robson, Smalltalk 80: the Language and its Implementation, Addison-Wesley, Reading, Mass., May 1983.zbMATHGoogle Scholar
  11. [11]
    James Gosling and H. McGilton, The Java Language Environment, Sun Microsystems Computer Company, May 1995.Google Scholar
  12. [12]
    Kohei Honda and Mario Tokoro, “An Object Calculus for Asynchronous Communication,” Proceedings ECOOP 8J, Pierre America (Ed.), LNCS 512, Springer-Verlag, Geneva, Switzerland, July 15–19, 1991, pp. 133–147.Google Scholar
  13. [13]
    Gregor Kiczales, Jim des Rivières and Daniel G. Bobrow, The Art of the Metaohject Protocol, MIT Press, 1991.Google Scholar
  14. [14]
    John Lamping, “Typing the Specialization Interface,” Proceedings OOPSLA 83, ACM SIGPLAN Notices, vol. 28, no. 10, Oct. 1993, pp. 201–214.CrossRefGoogle Scholar
  15. [15]
    Jeff Magee, Naranker Dulay and Jeffrey Kramer, “Specifying Distributed Software Architectures,” Proceedings European Software Engineering Conference, Springer Verlag, Lecture Notes in Computer Science, 1995.Google Scholar
  16. [16]
    Ciaran McHale, “Synchronisation in Concurrent, Object-oriented Languages: Expressive Power, Genericity and Inheritance,” Ph.D. Dissertation, Department of Computer Science, Trinity College, Dublin, 1994.Google Scholar
  17. [17]
    Theo Dirk Meijler and Robert Engel, “Making Design Patterns Explicit in FACE, a Framework Adaptive Composition Environment,” draft manuscript, IAM, U. Berne, April 1996, Submitted for publication.Google Scholar
  18. [18]
    Tom Mens, Kim Mens and Patrick Steyaert, “OPUS: a Calculus for Modelling Object-Oriented Concepts,” Technical Report, No. VUB-TINF-TR-94–04, Department of Computer Science, Vrije Universiteit Brussel, Belgium, 1994.Google Scholar
  19. [19]
    Bertrand Meyer, “Systematic Concurrent Object-Oriented Programming,” Communications of the ACM vol. 36, no. 9. September 1993, pp. 56–80.CrossRefGoogle Scholar
  20. [20]
    Robin Milner, Joachim Parrow and David Walker, “A Calculus of Mobile Processes, Part I/1I,” Information and Computation, vol. 100, 1992, pp. 1–77.CrossRefMathSciNetzbMATHGoogle Scholar
  21. [21]
    Oscar Nierstrasz, “Towards an Object Calculus,” Proceedings of the ECOOP 81 Workshop on Object-Based Concurrent Computing M. Tokoro, O. Nierstrasz and P. Wegner (Ed.), LNCS 612, Springer-Verlag, 1992, pp. 1–20.CrossRefGoogle Scholar
  22. [22]
    Oscar Nierstrasz and Laurent Dami, “Component-Oriented Software Technology,” in Object-Oriented Software Composition, ed. O. Nierstrasz and D. Tsichritzis, Prentice Hall, 1995, pp. 3–28.Google Scholar
  23. [23]
    Oscar Nierstrasz, “Regular Types for Active Objects,” Object-Oriented Software Composition, O. Nierstrasz and D. Tsichritzis ( Ed. ), Prentice Hall, 1995, pp. 99–121.Google Scholar
  24. [24]
    Oscar Nierstrasz and Theo Dirk Meijler, “Requirements for a Composition Language,” Proceedings of the ECOOP 84 Workshop on Coordination Languages ed. P. Ciancarini, O. Nierstrasz, A. Yonezawa, Springer-Verlag, LNCS 924, 1995, pp. 147–161.Google Scholar
  25. [25]
    Oscar Nierstrasz and Theo Dirk Meijler, “Research Directions in Software Composition,” ACM Computing Surveys, vol. 27, no. 2, June 1995, pp. 262–264.CrossRefGoogle Scholar
  26. [26]
    Else K. Nordhagen, “Omicron, An Object-Oriented Calculus,” Proceedings FMOODS’96, IFIP WG 6.1 (Ed.), Paris, France, March 1996.Google Scholar
  27. [27]
    Benjamin C. Pierce, “PICT: An Experiment in Concurrent Language Design,” PICT Version 3.6 tutorial, University of Edinburgh, March, 1994.Google Scholar
  28. [28]
    Benjamin C. Pierce and David N. Turner, “Simple Type-Theoretic Foundations for Object-Oriented Programming,” Journal of Functional Programming, vol. 4, no. 2, April 1994, pp. 207–247.CrossRefzbMATHGoogle Scholar
  29. [29]
    Benjamin C. Pierce, “Programming in the Pi-Calculus: An Experiment in Concurrent Language Design,” Technical Report, Computer Laboratory, University of Cambridge, UK, May 1995, Tutorial Notes for PICT Version 3. 6a.Google Scholar
  30. [30]
    Benjamin C. Pierce and David N. Turner, “Concurrent Objects in a Process Calculus,” Proceedings Theory and Practice of Parallel Programming (TPPP 94), Takayasu Ito and Akinori Yonezawa (Ed.), Springer LNCS 907, Sendai, Japan, 1995, pp. 187–215.CrossRefGoogle Scholar
  31. [31]
    Davide Sangiorgi, “Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms,” Ph.D. thesis, CST-99–93 (also: ECS-LFCS-93–266), Computer Science Dept., University of Edinburgh, May 1993.Google Scholar
  32. [32]
    Jean-Guy Schneider and Markus Lumpe, “Modelling Objects in PICT,” Technical Report, no. IAM-96–004, University of Bern, Institute of Computer Science and Applied Mathematics, January 1996.Google Scholar
  33. [33]
    Gert Smolka, “A Survey of Oz,” Draft, German Research Center for Artificial Intelligence (DFKI), January 24, 1995.Google Scholar
  34. [34]
    David N. Turner, “The Polymorphic Pi-Calculus: Theory and Implementation,” Ph.D. thesis, Department of Computer Science, University of Edinburgh, UK, 1996.Google Scholar
  35. [35]
    Patrick Varone, “Implementation of ‘Generic Synchronization Policies’ in PICT,” Technical Report, no. IAM-96–005, University of Bern, Institute of Computer Science and Applied Mathematics, March 1996.Google Scholar
  36. [36]
    Pierre Viret, “Viewing C++ Objects as Communicating Processes,” Master’s thesis, Laboratoire de Téléinformatique, Ecole Polytechnique Fédérale de Lausanne (EPFL), CH, March 1996.Google Scholar

Copyright information

© IFIP International Federation for Information Processing 1997

Authors and Affiliations

  • O. Nierstrasz
    • 1
  • J.-G. Schneider
    • 1
  • M. Lumpe
    • 1
  1. 1.Software Composition Group, Institut für Informatik (IAM)University of BerneBerneSwitzerland

Personalised recommendations