Advertisement

Requirements for a composition language

  • Oscar Nierstrasz
  • Theo Dirk Meijler
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 924)

Abstract

The key requirement for open systems is that they be flexible, or recomposable. This suggests that they must first of all be composable. Object-oriented techniques help by allowing applications to be viewed as compositions of collaborating objects, but are limited in supporting other kinds of abstractions that may have finer or coarser granularity than objects. A composition language supports the technical requirements of a componentoriented development approach by shifting emphasis from programming and inheritance of classes to specification and composition of components. Objects are viewed as processes, and components are abstractions over the object space. An application is viewed as an explicit composition of software components. By making software architectures explicit and manipulable, we expect to better support application evolution and flexibility. In this position paper we will elaborate our requirements and outline a strategy for the design and implementation of a composition language for the development of open systems.

Keywords

Formal Semantic Language Design Language Feature Component Framework Process Calculus 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Gregory Abowd, Robert Allen and David Garlan, “Using Style to Understand Descriptions of Software Architecture,” Proceedings SIGSOFT 93, ACM Software Engineering Notes, vol. 18, no. 5, Dec 1993, pp. 9–20.Google Scholar
  2. [2]
    Gilad Bracha, “The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance,” Ph.D. thesis, Dept. of Computer Science, University of Utah, March 1992.Google Scholar
  3. [3]
    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.Google Scholar
  4. [4]
    William Cook, “Application Integration, not Application Distribution,” ACM OOPS Messenger, Addendum to the Proceedings of OOPSLA 1993, vol. 5, no. 2, April 1994, pp. 70–71.Google Scholar
  5. [5]
    Laurent Dami, “Software Composition: Towards an Integration of Functional and Object-Oriented Approaches,” Ph.D. thesis No. 396, University of Geneva, 1994.Google Scholar
  6. [6]
    Thomas Eggenschwiler and Erich Gamma, “ET++SwapsManager: Using Object Technology in the Financial Engineering Domain”, Proceedings OOPSLA '92, ACM SIGPLAN Notices, vol. 27, no. 10, Oct. 1992, pp. 166–177.Google Scholar
  7. [7]
    Uffe Engberg and M. Nielsen, “A Calculus of Communicating Systems with Label Passing,” DAIMIPB-208, University of Aarhus, 1986.Google Scholar
  8. [8]
    Adele Goldberg and David Robson, Smalltalk 80: the Language and its Implementation, Addison-Wesley, May 1983.Google Scholar
  9. [9]
    Adele Goldberg and Kenneth S. Rubin, Succeeding With Objects: Decision Frameworks for Project Management, Addison Wesley, 1995, forthcoming.Google Scholar
  10. [10]
    Carl A. Gunter and John C. Mitchell, Theoretical Aspects of Object-Oriented Programming, The MIT Press, 1994.Google Scholar
  11. [11]
    John Hogg, “Islands: Aliasing Protection in Object-Oriented Languages,” Proceedings OOPSIA '91, ACM SIGPLAN Notices, vol. 26, no. 11, Nov 1991, pp. 271–285.Google Scholar
  12. [12]
    Kohei Honda and Mario Tokoro, “An Object Calculus for Asynchronous Communication,” Proceedings ECOOP '91, P. America (Ed.), LNCS 512, Springer-Verlag, Geneva, Switzerland, July 15–19, 1991, pp. 133–147.Google Scholar
  13. [13]
    Ralph E. Johnson and Brian Foote, “Designing Reusable Classes,” Journal of Object-Oriented Programming, vol. 1, no. 2, 1988, pp. 22–35.Google Scholar
  14. [14]
    Dennis G. Kafura and Keung Hae Lee, “Inheritance in Actor Based Concurrent Object-Oriented Languages,” Proceedings ECOOP '89, S. Cook (Ed.), Cambridge University Press, Nottingham, July 10–14, 1989, pp. 131–145.Google Scholar
  15. [15]
    Gregor Kiczales, Jim des Rivières and Daniel G. Bobrow, The Art of the Metaobject Protocol, MIT Press (Ed.), 1991.Google Scholar
  16. [16]
    Mark a. Linton, John M. Vlissides and Paul r. Calder, “Composing user interfaces with InterViews”, Computer, Vol. 22, no. 2, 1989, pp. 8–22.Google Scholar
  17. [17]
    Peter W. Madany, “An Object-Oriented Framework for Filesystems”, Ph.D. Thesis University of Illinois at Urbana-Champaign, 1992Google Scholar
  18. [18]
    Jeff Magee, Naranker Dulay and Jeffrey Kramer, “Structuring Parallel and Distributed Programs,” Proceedings of the International Workshop on Configurable Distributed Systems, London, March 1992.Google Scholar
  19. [19]
    Satoshi Matsuoka and Akinori Yonezawa, “Analysis of Inheritance Anomaly in Object-Oriented Concurrent Programming Languages,” Research Directions in Concurrent Object-Oriented Programming, G. Agha, P. Wegner and A. Yonezawa (Ed.), MIT Press, 1993, pp. 107–150.Google Scholar
  20. [20]
    Theo Dirk Meijler, “User-level Integration of Data and Operation Resources by means of a Self-descriptive Data Model”, Ph.D. Thesis, Erasmus University Rotterdam, Sept. 1993Google Scholar
  21. [21]
    Vicki de Mey, “Visual Composition of Software Applications,” Ph.D. thesis (no. 2660), Dept. of Computer Science, University of Geneva, 1994.Google Scholar
  22. [22]
    Robin Milner, Communication and Concurrency, Prentice-Hall, 1989.Google Scholar
  23. [23]
    Robin Milner, Joachim Parrow and David Walker, “A Calculus of Mobile Processes, Parts I and II,” Reports ECS-LFCS-89-85 and-86, Computer Science Dept., University of Edinburgh, March 1989.Google Scholar
  24. [24]
    Robin Milner, M. Tofte and R. Harper, The definition of standard ML., MIT Press, Cambridge, 1990.Google Scholar
  25. [25]
    Robin Milner, “Functions as Processes,” Proceedings ICALP '90, M.S. Paterson (Ed.), LNCS 443, Springer-Verlag, Warwick U., July 1990, pp. 167–180.Google Scholar
  26. [26]
    Robin Milner, “The Polyadic pi Calculus: a tutorial,” ECS-LFCS-91-180, Computer Science Dept., University of Edinburgh, Oct. 1991.Google Scholar
  27. [27]
    Oscar Nierstrasz, “A Guide to Specifying Concurrent Behaviour with Abacus,” Object Management, D. Tsichritzis (Ed.), Centre Universitaire d'Informatique, University of Geneva, July 1990, pp. 267–293.Google Scholar
  28. [28]
    Oscar Nierstrasz, “Towards an Object Calculus,” Proceedings of the ECOOP '91 Workshop on Object-Based Concurrent Computing, M. Tokoro, O. Nierstrasz, P. Wegner (Ed.), LNCS 612, Springer-Verlag, 1992, pp. 1–20.Google Scholar
  29. [29]
    Oscar Nierstrasz, Simon Gibbs and Dennis Tsichritzis, “Component-Oriented Software Development,” Communications of the ACM, vol. 35, no. 9, Sept 1992, pp. 160–165.Google Scholar
  30. [30]
    Oscar Nierstrasz, “Regular Types for Active Objects,” Proceedings OOPSLA '93, ACM SIGPLAN Notices, vol. 28, no. 10, Oct. 1993, pp. 1–15.Google Scholar
  31. [31]
    Oscar Nierstrasz, “Composing Active Objects,” Research Directions in Concurrent Object-Oriented Programming, G. Agha, P. Wegner and A. Yonezawa (Ed.), MIT Press, 1993, pp. 151–171.Google Scholar
  32. [32]
    Oscar Nierstrasz and Laurent Dami, “Component-Oriented Software Technology,” Object-Oriented Software Composition, O. Nierstrasz, D. Tsichritzis (Ed.), Prentice-Hall, 1995, to appear.Google Scholar
  33. [33]
    Michael Papathomas, “A Unifying Framework for Process Calculus Semantics of Concurrent Object-Oriented Languages,” Proceedings of the ECOOP '91 Workshop on Object-Based Concurrent Computing, M. Tokoro, O. Nierstrasz, P. Wegner (Ed.), LNCS 612, Springer-Verlag, 1992, pp. 53–79.Google Scholar
  34. [34]
    Michael Papathomas, “Language Design Rationale and Semantic Framework for Concurrent Object-Oriented Programming,” Ph.D. thesis No. 2522, Dept. of Computer Science, University of Geneva, 1992.Google Scholar
  35. [35]
    Benjamin C. Pierce, “Programming in the Pi-Calculus — An Experiment in Concurrent Language Design,” PICT Version 3.4c tutorial, ftp://ftp.dcs.ed.ac.Uk/pub/bcp/pict.tar.Z, University of Edinburgh, March, 1994.Google Scholar
  36. [36]
    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
  37. [37]
    Richard Soley (Ed.), Object Management Architecture Guide, Object Management Group, Frameington, MA, Nov. 1990.Google Scholar
  38. [38]
    Alan Snyder, “Open Systems for Software: An Object-Oriented Solution,” ACM OOPS Messenger, Addendum to the Proceedings of OOPSLA 1993, vol. 5, no. 2, April 1994, pp. 67–68.Google Scholar
  39. [39]
    Bent Thomsen, “Calculi for Higher Order Communicating Systems,” Ph.D. thesis, Imperial College, London, 1990.Google Scholar
  40. [40]
    Jon Udell, “Componentware,” in Byte, Vol. 19, No 5, May 1994, pp 46–56.Google Scholar
  41. [41]
    Larry Wall and Randal L. Schwartz, Programming Perl, O'Reilly & Associates, Inc., 1990.Google Scholar
  42. [42]
    Antony S. Williams, “The OLE 2.0 Object Model,” ACM OOPS Messenger, Addendum to the Proceedings of OOPSLA 1993, vol. 5, no. 2, April 1994, pp. 68–70.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Oscar Nierstrasz
    • 1
  • Theo Dirk Meijler
    • 1
  1. 1.Institut für Informatik (IAM)UniversitÄt BernBerneSwitzerland

Personalised recommendations