[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1739230.1739248acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

A model for composable composition operators: expressing object and aspect compositions with first-class operators

Published: 15 March 2010 Publication History

Abstract

A considerable amount of research, especially within the OO and AOSD communities, has focused on understanding the potential and limitations of various composition techniques. This has led to a large amount of proposals for alternative composition techniques, including many variations of message dispatch, inheritance, and aspect mechanisms. This paper makes the case that there is no single perfect composition technique that suits every situation, since different techniques incur different trade-offs. The proper composition technique to use depends on the particular design problem and its requirements (e.g. w.r.t. adaptability, reusability, understandability, robustness, etc. of the various elements of the design). However, most programming languages limit the available composition techniques to a very few. To address this, we propose a novel composition model. The model provides dedicated abstractions that can be used to express a wide variation of object composition techniques ("composition operators"). Examples include various forms of inheritance, delegation, and aspects. The proposed model unifies objects (with encapsulated state and a message interface) and composition operators; composition operators are specified as first-class citizens. Multiple composition operators can be combined within the same application, and composition operators can even be used to compose new composition operators from existing ones. This opens new possibilities for developing domain-specific composition operators, taxonomies of composition operators, and for reuse and refinement of composition operators. To validate and experiment with the proposed model, we have designed and implemented a simple language, that we also use in this paper to show concrete examples.

References

[1]
Java Aspect Metamodel Interpreter - http://jami.sf.net/, 2007.
[2]
Co-op homepage, http://wwwhome.cs.utwente.nl/~havingaw/coop/, 2008.
[3]
P. Avgustinov, A. S. Christensen, L. J. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An extensible aspectj compiler. Transactions on Aspect-Oriented Software Development I, 3880/2006: 293--334, February 2006.
[4]
G. Banavar and G. Lindstrom. An application framework for module composition tools. In In ECOOP '96, number 1098 in Lecture Notes in Computer Science, pages 91--113. Springer Verlag, 1996.
[5]
O. Barzilay, Y. A. Feldman, S. Tyszberowicz, and A. Yehudai. Call and execution semantics in AspectJ. In C. Clifton, R. Lämmel, and G. T. Leavens, editors, FOAL: Foundations Of Aspect-Oriented Languages, pages 19--24, Mar. 2004.
[6]
L. Bergmans and M. Akşit. Composing crosscutting concerns using composition filters. Comm. ACM, 44(10):51--57, Oct. 2001.
[7]
C. Bockisch. An Efficient and Flexible Implementation of Aspect-Oriented Languages. PhD thesis, Technische Universität Darmstadt, 2009.
[8]
N. Bouraqadi, A. Seriai, and G. Leblanc. Towards unified aspect-oriented programming. In Proceedings of ESUG 2005 (13th international smalltalk conference), 2005.
[9]
G. Bracha and W. Cook. Mixin-based inheritance. In Conf. Object-Oriented Programming: Systems, Languages, and Applications; European Conf. Object-Oriented Programming, pages 303--311. ACM, 1990.
[10]
J. Brichau, M. Mezini, J. Noyé, W. Havinga, L. Bergmans, V. Gasiunas, C. Bockisch, J. Fabry, and T. D'Hondt. An Initial Metamodel for Aspect-Oriented Programming Languages. Technical Report AOSD-Europe Deliverable D39, Vrije Universiteit Brussel, 27 February 2006 2006.
[11]
C. Chambers, D. Ungar, and E. Lee. An efficient implementation of self a dynamically-typed object-oriented language based on prototypes. SIGPLAN Not., 24(10):49--70, 1989.
[12]
P. Cointe. Reflective languages and metalevel architectures. ACM Comput. Surv., page 151, 1996.
[13]
B. C. d. S. Oliveira. Modular Visitor Components. In Proceedings of the 23th European Conference on Object-Oriented Programming (ECOOP 2009), 2009.
[14]
R. Dyer and H. Rajan. Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation. In AOSD '08: Proceedings of the 7th International Conference on Aspect-oriented Software Development, New York, NY, USA, 2008. ACM.
[15]
M. Ernst, C. Kaplan, and C. Chambers. Predicate dispatching: A unified theory of dispatch. Lecture Notes in Computer Science, 1445:186--211, 1998.
[16]
R. E. Filman, S. Barrett, D. D. Lee, and T. Linden. Inserting ilities by controlling communications. Comm. ACM, 45(1):116--122, Jan. 2002.
[17]
A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 1983.
[18]
D. S. Goldberg, R. B. Findler, and M. Flatt. Super and inner: together at last! In OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 116--129, New York, NY, USA, 2004. ACM.
[19]
J. Guy L. Steele. Growing a language. Higher Order Symbol. Comput., 12(3):221--236, 1999.
[20]
M. Haupt and H. Schippers. A machine model for aspect-oriented programming. In ECOOP 2007: Proceedings of the 21th European Conference on Object-Oriented Programming, pages 501--524, 2007.
[21]
W. K. Havinga. On the Design of Software Composition Mechanisms and the Analysis of Composition Conflicts. PhD thesis, University of Twente, Enschede, June 2009.
[22]
W. K. Havinga, L. M. J. Bergmans, and M. Akşit. Prototyping and composing aspect languages: using an aspect interpreter framework. In Proceedings of 22nd European Conference on Object-Oriented Programming (ECOOP 2008), Paphos, Cyprus, volume 5142/2008 of Lecture Notes in Computer Science, pages 180--206, Berlin, 2008. Springer Verlag.
[23]
R. Hirschfeld. Aspect-oriented programming with AspectS. In M. Akşit and M. Mezini, editors, Net.Object Days 2002, Oct. 2002.
[24]
G. Kiczales. It's not metaprogramming. Software Development Magazine, (10), 2004.
[25]
G. Kiczales, J. des Rivieres, and D. G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, Massachusetts, 1991.
[26]
S. Kojarski and D. H. Lorenz. Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions. SIGPLAN Notices, 42(10):515--534, 2007.
[27]
H. Lieberman. Using prototypical objects to implement shared behavior in object-oriented systems. SIGPLAN Not., 21(11):214--223, 1986.
[28]
O. L. Madsen, B. Mø-Pedersen, and K. Nygaard. Object-oriented programming in the BETA programming language. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 1993.
[29]
H. Masuhara and G. Kiczales. Modular crosscutting in aspect-oriented mechanisms. In L. Cardelli, editor, ECOOP 2003---Object-Oriented Programming, 17th European Conference, volume 2743 of lncs, pages 2--28, Berlin, July 2003. Springer-Verlag.
[30]
T. Millstein. Practical predicate dispatch. ACM SIGPLAN Notices, 39(10):345--364, 2004.
[31]
I. Nagy, L. Bergmans, W. Havinga, and M. Aksit. Utilizing design information in aspect-oriented programming. In A. P. Robert Hirschfeld, Ryszard Kowalczyk and M. Weske, editors, Proceedings of International Conference NetObjectDays, NODe2005, volume P-69 of Lecture Notes in Informatics, Erfurt, Germany, Sep 2005. Gesellschaft für Informatik (GI).
[32]
D. Notkin, D. Garlan, W. G. Griswold, and K. J. Sullivan. Adding implicit invocation to languages: Three approaches. In Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software, pages 489--510, London, UK, 1993. Springer-Verlag.
[33]
K. Ostermann and M. Mezini. Object-oriented composition untangled. In Proc. OOPSLA '01 Conf. Object Oriented Programming Systems Languages and Applications, pages 283--299. ACM Press, 2001.
[34]
I. Piumarta and A. Warth. Open, extensible object models. In Self-Sustaining Systems, page 30. Springer, 2008.
[35]
H. Rajan and K. J. Sullivan. Classpects: unifying aspect- and object-oriented language design. In ICSE '05: Proceedings of the 27th international conference on Software engineering, pages 59--68, New York, 2005. ACM Press.
[36]
N. Schärli, S. Ducasse, O. Nierstrasz, and A. Black. Traits: Composable units of behaviour. Lecture notes in computer science, pages 248--274, 2003.
[37]
A. Taivalsaari. On the notion of inheritance. ACM Comput. Surv., 28(3):438--479, 1996.
[38]
É. Tanter and J. Noyé. A versatile kernel for multi-language AOP. In R. Glück and M. R. Lowry, editors, Generative Programming and Component Engineering, 4th International Conference (GPCE), volume 3676 of Lecture Notes in Computer Science, pages 173--188. Springer, Sept. 2005.
[39]
P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton, Jr. N degrees of separation: Multi-dimensional separation of concerns. In Proc. 21st Int'l Conf. Software Engineering (ICSE'1999), pages 107--119. IEEE Computer Society Press, May 1999.
[40]
wikipedia. Metaobject, October 2009.

Cited By

View all
  • (2019)Quantitative Assessment of Inheritance Hierarchies for Aspect Oriented Software Development using a proposed Aspect Inheritance Reusability Model2019 International Conference on Automation, Computational and Technology Management (ICACTM)10.1109/ICACTM.2019.8776775(573-576)Online publication date: Apr-2019
  • (2014)Method Slots: Supporting Methods, Events, and Advices by a Single Language ConstructTransactions on Aspect-Oriented Software Development XI10.1007/978-3-642-55099-7_3(70-108)Online publication date: 2014
  • (2013)Method slotsProceedings of the 12th annual international conference on Aspect-oriented software development10.1145/2451436.2451460(197-208)Online publication date: 24-Mar-2013
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '10: Proceedings of the 9th International Conference on Aspect-Oriented Software Development
March 2010
242 pages
ISBN:9781605589589
DOI:10.1145/1739230
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 March 2010

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

AOSD '10
Sponsor:
  • AOSA

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Quantitative Assessment of Inheritance Hierarchies for Aspect Oriented Software Development using a proposed Aspect Inheritance Reusability Model2019 International Conference on Automation, Computational and Technology Management (ICACTM)10.1109/ICACTM.2019.8776775(573-576)Online publication date: Apr-2019
  • (2014)Method Slots: Supporting Methods, Events, and Advices by a Single Language ConstructTransactions on Aspect-Oriented Software Development XI10.1007/978-3-642-55099-7_3(70-108)Online publication date: 2014
  • (2013)Method slotsProceedings of the 12th annual international conference on Aspect-oriented software development10.1145/2451436.2451460(197-208)Online publication date: 24-Mar-2013
  • (2012)An implementation mechanism for tailorable exceptional flowProceedings of the 5th International Workshop on Exception Handling10.5555/2666990.2666996(22-26)Online publication date: 9-Jun-2012
  • (2012)First-Class compositionsTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434967(216-267)Online publication date: 1-Jan-2012
  • (2012)An implementation mechanism for tailorable exceptional flow2012 5th International Workshop on Exception Handling (WEH)10.1109/WEH.2012.6226594(22-26)Online publication date: Jun-2012
  • (2012)First-Class CompositionsTransactions on Aspect-Oriented Software Development IX10.1007/978-3-642-35551-6_6(216-267)Online publication date: 2012
  • (2011)Reuse of continuation-based control-flow abstractionsProceedings of the 2nd workshop on Free composition @ onward! 201110.1145/2089172.2089176(13-18)Online publication date: 23-Oct-2011
  • (2011)The keyword revolutionProceedings of the 1st International Workshop on Free Composition10.1145/2068776.2068780(1-5)Online publication date: 25-Jul-2011

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media