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.
References
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.
Gilad Bracha, “The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance,” Ph.D. thesis, Dept. of Computer Science, University of Utah, March 1992.
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.
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.
Laurent Dami, “Software Composition: Towards an Integration of Functional and Object-Oriented Approaches,” Ph.D. thesis No. 396, University of Geneva, 1994.
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.
Uffe Engberg and M. Nielsen, “A Calculus of Communicating Systems with Label Passing,” DAIMIPB-208, University of Aarhus, 1986.
Adele Goldberg and David Robson, Smalltalk 80: the Language and its Implementation, Addison-Wesley, May 1983.
Adele Goldberg and Kenneth S. Rubin, Succeeding With Objects: Decision Frameworks for Project Management, Addison Wesley, 1995, forthcoming.
Carl A. Gunter and John C. Mitchell, Theoretical Aspects of Object-Oriented Programming, The MIT Press, 1994.
John Hogg, “Islands: Aliasing Protection in Object-Oriented Languages,” Proceedings OOPSIA '91, ACM SIGPLAN Notices, vol. 26, no. 11, Nov 1991, pp. 271–285.
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.
Ralph E. Johnson and Brian Foote, “Designing Reusable Classes,” Journal of Object-Oriented Programming, vol. 1, no. 2, 1988, pp. 22–35.
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.
Gregor Kiczales, Jim des Rivières and Daniel G. Bobrow, The Art of the Metaobject Protocol, MIT Press (Ed.), 1991.
Mark a. Linton, John M. Vlissides and Paul r. Calder, “Composing user interfaces with InterViews”, Computer, Vol. 22, no. 2, 1989, pp. 8–22.
Peter W. Madany, “An Object-Oriented Framework for Filesystems”, Ph.D. Thesis University of Illinois at Urbana-Champaign, 1992
Jeff Magee, Naranker Dulay and Jeffrey Kramer, “Structuring Parallel and Distributed Programs,” Proceedings of the International Workshop on Configurable Distributed Systems, London, March 1992.
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.
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
Vicki de Mey, “Visual Composition of Software Applications,” Ph.D. thesis (no. 2660), Dept. of Computer Science, University of Geneva, 1994.
Robin Milner, Communication and Concurrency, Prentice-Hall, 1989.
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.
Robin Milner, M. Tofte and R. Harper, The definition of standard ML., MIT Press, Cambridge, 1990.
Robin Milner, “Functions as Processes,” Proceedings ICALP '90, M.S. Paterson (Ed.), LNCS 443, Springer-Verlag, Warwick U., July 1990, pp. 167–180.
Robin Milner, “The Polyadic pi Calculus: a tutorial,” ECS-LFCS-91-180, Computer Science Dept., University of Edinburgh, Oct. 1991.
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.
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.
Oscar Nierstrasz, Simon Gibbs and Dennis Tsichritzis, “Component-Oriented Software Development,” Communications of the ACM, vol. 35, no. 9, Sept 1992, pp. 160–165.
Oscar Nierstrasz, “Regular Types for Active Objects,” Proceedings OOPSLA '93, ACM SIGPLAN Notices, vol. 28, no. 10, Oct. 1993, pp. 1–15.
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.
Oscar Nierstrasz and Laurent Dami, “Component-Oriented Software Technology,” Object-Oriented Software Composition, O. Nierstrasz, D. Tsichritzis (Ed.), Prentice-Hall, 1995, to appear.
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.
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.
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.
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.
Richard Soley (Ed.), Object Management Architecture Guide, Object Management Group, Frameington, MA, Nov. 1990.
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.
Bent Thomsen, “Calculi for Higher Order Communicating Systems,” Ph.D. thesis, Imperial College, London, 1990.
Jon Udell, “Componentware,” in Byte, Vol. 19, No 5, May 1994, pp 46–56.
Larry Wall and Randal L. Schwartz, Programming Perl, O'Reilly & Associates, Inc., 1990.
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.
Author information
Authors and Affiliations
Editor information
Rights 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