Abstract
For flexible use in application contexts, software components should be parameterized, but also extended appropriately. Until now, there is no language mechanism to solve both problems uniformly. This paper presents a new concept, component hooks. Hooks are similar to generic component parameters but go some steps beyond. Firstly, they allow genericity on arbitrary program elements, leading to generic program elements. Secondly, they introduce an abstraction layer on generic parameters, allowing for structured generic parameters that bind several program elements together. Thirdly, if they are abstract set or sequence values, they can also be used to extend components. Lastly, since they only rely on a meta model they are a language independent concept which can be applied to all languages.
Hooks form a basic parameterization concept for components written in languages with a meta model. For such languages, hooks generalize many well known generic language mechanisms, such as macros, semantic macros, generic type parameters, or nested generics. They also provide a basic concept to realize simple forms of aspect weavers and other advanced software engineering concepts.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
International Organization for Standardization. Ada 83 Reference Manual. The Language. The Standard Libraries, 1983.
International Organization for Standardization. Ada 95 Reference Manual. The Language. The Standard Libraries, January 1995. ANSI/ISO/IEC-8652:1995.
Uwe Aßmann, Andreas Ludwig, and Rainer Neumann. COMPOST home page. http://i44w3.info.uni-karlsruhe.de/~compost, March 2000.
Uwe Aßmann. Meta-programming Composers In Second-Generation Component Systems. In J. Bishop and N. Horspool, editors, Systems Implementation 2000-Working Conference IFIP WG 2.4, Berlin, February 1998. Chapman and Hall.
Kent Beck. Extreme Programming Explained: Embracing Change. Addison-Wesley, 1999.
Lars Bak, Claus Nörgaad, Elmer Sandvad, Jörgen Linkskov Knudsen, and Ole Lehrmann Madsen. Software Engineering Environments, volume 3, chapter ”An Overview of the Mjölner BETA System”, pages 331–362. Ellis Horwood, 1991.
Gilad Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah, 1992.
Don Batory, Vivek Singhal, Jeff Thomas, Sankar Dasari, Bart Geraci, and Marty Sirkin. The GenVoca model of software-system generation. IEEE Software, 11(5):89–94, September 1994.
Krzysztof Czarnecki and Ulrich Eisenecker. Generative Programming: Methods, Techniques, and Applications. Addision-Wesley, 2000.
Shigeru Chiba and Takashi Masuda. Designing an Extensible Distributed Language with a Meta-Level Architecture. In O. Nierstrasz, editor, Proceedings of the ECOOP’ 93 European Conference on Object-oriented Programming, LNCS 707, pages 483–502, Kaiserslautern, Germany, July 1993. Springer-Verlag.
Shiram Krishnamurthi, Matthias Felleisen, and Bruce F. Duba. From Macros to Reusable Generative Programming. In U. W. Eisenecker and K. Czarnecki, editors, Generative Component-based Software Engineering (GCSE), number 1799 in Lecture Notes in Computer Science, Erfurt, October 1999.
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopez, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In ECOOP 97, volume 1241 of Lecture Notes in Computer Science, pages 220–242. Springer-Verlag, 1997.
S. Katz, C. A. Richter, and K.-S. The. PARIS: A system for reusing partially interpreted schemas. In Proceedings of the 9th International Conference on Software Engineering, pages 377–385. IEEE Computer Society Press, 1987.
B. Liskov, R. R. Atkinson, T. Bloom, E. B. Moss, R. Schaffert, and A. Snyder. CLU reference manual. Technical Report MIT/LCS/TR-225, Massachusetts Institute of Technology, October 1979.
J. Lindskov Knudsen, M Löfgren, O Lehrmann Madsen, and B. Magnus-son. Object-Oriented Environments-The Mjolner Approach. Prentice Hall, 1994.
Bil Lewis, Dan LaLiberte, Richard Stallman, and the GNU Manual Group. GNU Emacs Lisp Reference Manual. GNU Free Software Foundation, for emacs version 20.3, revision 2.5 edition, May 1998.
William Maddox. Semantically-sensitive macroprocessing. Technical Report CSD-89-545, University of California, Berkeley, 1989.
Wolfgang Pree. Design patterns for object-oriented software development. Addison-Wesley, New York, ACM press, 1995.
C. Simonyi and M. Heller. The Hungarian revolution: A developing standard for naming program variables. Byte Magazine, 16(8):131–132, 134–138, August 1991.
Bjyrne Stroustrup. The C++ Programming Language: Third Edition. Addison-Wesley Publishing Co., Reading, Mass., 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aßmann, U. (2002). Beyond Generic Component Parameters. In: Bishop, J. (eds) Component Deployment. CD 2002. Lecture Notes in Computer Science, vol 2370. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45440-3_10
Download citation
DOI: https://doi.org/10.1007/3-540-45440-3_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43847-2
Online ISBN: 978-3-540-45440-3
eBook Packages: Springer Book Archive