Skip to main content

Requirements for a composition language

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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. 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. 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. 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. 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. Uffe Engberg and M. Nielsen, “A Calculus of Communicating Systems with Label Passing,” DAIMIPB-208, University of Aarhus, 1986.

    Google Scholar 

  8. Adele Goldberg and David Robson, Smalltalk 80: the Language and its Implementation, Addison-Wesley, May 1983.

    Google Scholar 

  9. Adele Goldberg and Kenneth S. Rubin, Succeeding With Objects: Decision Frameworks for Project Management, Addison Wesley, 1995, forthcoming.

    Google Scholar 

  10. Carl A. Gunter and John C. Mitchell, Theoretical Aspects of Object-Oriented Programming, The MIT Press, 1994.

    Google Scholar 

  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. 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. 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. 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. Gregor Kiczales, Jim des Rivières and Daniel G. Bobrow, The Art of the Metaobject Protocol, MIT Press (Ed.), 1991.

    Google Scholar 

  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. Peter W. Madany, “An Object-Oriented Framework for Filesystems”, Ph.D. Thesis University of Illinois at Urbana-Champaign, 1992

    Google Scholar 

  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. 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. 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. 1993

    Google Scholar 

  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. Robin Milner, Communication and Concurrency, Prentice-Hall, 1989.

    Google Scholar 

  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. Robin Milner, M. Tofte and R. Harper, The definition of standard ML., MIT Press, Cambridge, 1990.

    Google Scholar 

  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. Robin Milner, “The Polyadic pi Calculus: a tutorial,” ECS-LFCS-91-180, Computer Science Dept., University of Edinburgh, Oct. 1991.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Richard Soley (Ed.), Object Management Architecture Guide, Object Management Group, Frameington, MA, Nov. 1990.

    Google Scholar 

  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. Bent Thomsen, “Calculi for Higher Order Communicating Systems,” Ph.D. thesis, Imperial College, London, 1990.

    Google Scholar 

  40. Jon Udell, “Componentware,” in Byte, Vol. 19, No 5, May 1994, pp 46–56.

    Google Scholar 

  41. Larry Wall and Randal L. Schwartz, Programming Perl, O'Reilly & Associates, Inc., 1990.

    Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Paolo Ciancarini Oscar Nierstrasz Akinori Yonezawa

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nierstrasz, O., Meijler, T.D. (1995). Requirements for a composition language. In: Ciancarini, P., Nierstrasz, O., Yonezawa, A. (eds) Object-Based Models and Languages for Concurrent Systems. ECOOP 1994. Lecture Notes in Computer Science, vol 924. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-59450-7_9

Download citation

  • DOI: https://doi.org/10.1007/3-540-59450-7_9

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-59450-5

  • Online ISBN: 978-3-540-49269-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics