skip to main content
research-article

Mostly modular compilation of crosscutting concerns by contextual predicate dispatch

Published: 17 October 2010 Publication History

Abstract

The modularity of aspect-oriented programming (AOP) has been a controversial issue. To investigate this issue compared with object-oriented programming (OOP), we propose a simple language providing AOP mechanisms, which are enhanced traditional OOP mechanisms. We also present its formal system and then show that programs in this language can be only mostly modularly (i.e. separately) typechecked and compiled.We mention a source of this unmodularity and discuss whether or not it is appropriate to claim that AOP breaks modularity compared with OOP.

References

[1]
}}Aldrich, J.: Open modules: Modular reasoning about advice. In: ECOOP 2005. pp. 144--168. LNCS 3586, Springer-Verlag (2005)
[2]
}}Apel, S., Batory, D.: When to use features and aspects?: A case study. In: Proc. of the 5th Int'l Conf. on Generative Programming and Component Engineering (GPCE '06). pp. 59--68. ACM Press (2006)
[3]
}}Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355--371 (2004)
[4]
}}Bergel, A., Ducasse, S., Nierstrasz, O.: Classbox/J: Controlling the scope of change in Java. In: Proc. of ACM OOPSLA. pp. 177--189 (2005)
[5]
}}Blackburn, S.M., et al.: The DaCapo benchmarks: Java benchmarking development and analysis. In: Proc. of ACM OOPSLA. pp. 169--190. ACM (2006)
[6]
}}Bockisch, C., Haupt, M., Mezini, M.: Dynamic virtual join point dispatch. Workshop on Software Engineering Properties of Languages and Aspect Technologies (SPLAT '06) (2006)
[7]
}}Bracha, G., Cook, W.: Mixin-based inheritance. In: Proc. of OOPSLA/ECOOP '90. pp. 303--311. ACM Press (1990)
[8]
}}Chiba, S.: Load-time structural reflection in Java. In: ECOOP 2000. pp. 313--336. LNCS 1850, Springer-Verlag (2000)
[9]
}}Chiba, S.: Predicate dispatch for aspect-oriented programming. In: the 2nd Workshop on Virtual Machines and Intermediate Languages for emerging modularization mechanisms (VMIL '08). pp. 1--5. ACM (2008)
[10]
}}Chiba, S., Igarashi, A., Zakirov, S.: Mostly modular composition of crosscutting structures by contextual predicate dispatch. Research Reports C-267, Dept. of Math. and Comp. Sciences, Tokyo Institute of Technology (December 2009)
[11]
}}Chiba, S., Ishikawa, R.: Aspect-oriented programming beyond dependency injection. In: ECOOP 2005. pp. 121--143. LNCS 3586, Springer-Verlag (2005)
[12]
}}Clifton, C., Leavens, G.T., Chambers, C., Millstein, T.: MultiJava: modular open classes and symmetric multiple dispatch for Java. In: Proc. of ACM OOPSLA. pp. 130--145. ACM Press (2000)
[13]
}}Cohen, T., Gil, J.Y.: AspectJ2EE = AOP + J2EE : Towards an aspect based, programmable and extensible middleware framework. In: ECOOP 2004 - Object-Oriented Programming. pp. 219--243. LNCS 3086 (2004)
[14]
}}Ekman, T., Hedin, G.: The Jastadd extensible Java compiler. In: Proc. of ACM OOPSLA. pp. 1--18. ACM (2007)
[15]
}}Ernst, E.: Family polymorphism. In: ECOOP 2001 - Object-Oriented Programming. pp. 303--326. LNCS 2072, Springer-Verlag (2001)
[16]
}}Ernst, M., Kaplan, C., Chambers, C.: Predicate dispatching: A unified theory of dispatch. In: ECOOP '98 - Object-Oriented Programming. pp. 186--211. Springer-Verlag (1998)
[17]
}}Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.) Aspect-Oriented Software Development, pp. 21--35. Addison-Wesley (2005)
[18]
}}Fraine, B.D., Südholt, M., Jonckers, V.: Strongaspectj: flexible and safe pointcut/advice bindings. In: Proc. of 7th Int'l Conf. on Aspect-Oriented Software Development (AOSD 2008). pp. 60--71. ACM (2008)
[19]
}}Griswold, W.G., et al.: Modular software design with crosscutting interfaces. IEEE Software 23(1), 51--60 (2006)
[20]
}}Hannemann, J., Kiczales, G.: Design pattern implementation in java and aspectj. In: Proc. of ACM OOPSLA. pp. 161--173 (2002)
[21]
}}Haupt, M., Schippers, H.: A machine model for aspect-oriented programming. In: ECOOP 2007 - Object-Oriented Programming. LNCS, vol. 4609, pp. 501--524 (2007)
[22]
}}Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3), 125--151 (2008)
[23]
}}Ichisugi, Y., Tanaka, A.: Difference-based modules: A class-independent module mechanism. In: ECOOP 2002 - Object-Oriented Programming. pp. 62--88. LNCS 2374 (2002)
[24]
}}Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. ACM Trans. Prog. Lang. Syst. 23(3), 396--450 (May 2001)
[25]
}}Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. In: ECOOP'97 - Object-Oriented Programming. pp. 220--242. LNCS 1241, Springer (1997)
[26]
}}Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: ECOOP 2001 - Object-Oriented Programming. pp. 327--353. LNCS 2072, Springer (2001)
[27]
}}Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: Proc. of the Int'l Conf. on Software Engineering (ICSE'05). pp. 49--58. ACM Press (2005)
[28]
}}Koppen, C., Stoerzer, M.: Pcdiff: Attacking the fragile pointcut problem. In: Proc. of European Interactive Workshop on Aspects in Software (EIWAS'04) (2004)
[29]
}}Lesiecki, N.: Improve modularity with aspect-oriented programming. http://www.ibm.com/developerworks/java/library/j-aspectj (2002)
[30]
}}Malabarba, S., et al.: Runtime support for type-safe dynamic Java classes. In: ECOOP 2000. pp. 337--361. LNCS 1850, Springer-Verlag (2000)
[31]
}}McEachen, N., Alexander, R.T.: Distributing classes with woven concerns: an exploration of potential fault scenarios. In: Proc. of Int'l Conf. on Aspect-Oriented Software Development (AOSD'05). pp. 192--200. ACM Press (2005)
[32]
}}Millstein, T.: Practical predicate dispatch. In: Proc. of ACM OOPSLA. pp. 345--364. ACM (2004)
[33]
}}Nishizawa, M., Chiba, S.: A small extension to Java for class refinement. In: Proc. of the 23rd ACM Sympo. on Applied Computing (SAC'08). pp. 160--165 (2008)
[34]
}}Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. In: Proc. of ACM OOPSLA. pp. 99--115 (2004)
[35]
}}Orleans, D.: Separating behavioral concerns with predicate dispatch, or, if statement considered harmful. In: Workshop on Advanced Separation of Concerns in Object-Oriented Systems at OOPSLA '01 (2001)
[36]
}}Ossher, H., Tarr, P.: Hyper/J: multi-dimensional separation of concerns for Java. In: Proc. of the Int'l Conf. on Software Engineering (ICSE). pp. 734--737 (2000)
[37]
}}Parnas, D.L.: Information distributions aspects of design methodology. In: Proc. of IFIP Congress '71. pp. 26--30 (1971)
[38]
}}Qi, X., Myers, A.C.: Sharing classes between families. In: Proc. of Conf. on Programming Language Design and Implementation. pp. 281--292 (2009)
[39]
}}Scharli, N., Ducasse, S., Nierstrasz, O., Black, A.: Traits: Composable units of behavior. In: Proceedings of European Conference on Object-Oriented Programming (ECOOP'03). LNCS, vol. 2743, pp. 248--274. Springer Verlag (July 2003)
[40]
}}Smaragdakis, Y., Batory, D.: Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans. Softw. Eng. Methodol. 11(2), 215--255 (2002)
[41]
}}Smith, R.B., Ungar, D.: A simple and unifying approach to subjective objects. Theory and Practice of Object Systems 2(3), 161--178 (1996)
[42]
}}Steimann, F.: The paradoxical success of aspect-oriented programming. ACM SIGPLAN Notices 41(10), 481--497 (2006)
[43]
}}Stoerzer, M., Graf, J.: Using pointcut delta analysis to support evolution of aspect-oriented software. In: ICSM '05: Proceedings of the 21st IEEE International Conference on Software Maintenance. pp. 653--656. IEEE Computer Society (2005)
[44]
}}Warth, A., Stanojević, M., Millstein, T.: Statically scoped object adaptation with expanders. In: Proc. of ACM OOPSLA. pp. 37--56 (2006)
[45]
}}Wehr, S., Lammel, R., Thiemann, P.: JavaGI: Generalized interfaces for Java. In: ECOOP 2007 - Object-Oriented Programming. LNCS 4609, Springer-Verlag (2007), 347--372
[46]
}}Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38--94 (Nov 1994)

Cited By

View all
  • (2015)A Sound Type System for Layer Subtyping and Dynamically Activated First-Class LayersProgramming Languages and Systems10.1007/978-3-319-26529-2_24(445-462)Online publication date: 9-Dec-2015
  • (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 shellsProceedings of the 12th annual international conference companion on Aspect-oriented software development10.1145/2457392.2457410(39-40)Online publication date: 24-Mar-2013
  • Show More Cited By

Index Terms

  1. Mostly modular compilation of crosscutting concerns by contextual predicate dispatch

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 10
    OOPSLA '10
    October 2010
    957 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1932682
    Issue’s Table of Contents
    • cover image ACM Conferences
      OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
      October 2010
      984 pages
      ISBN:9781450302036
      DOI:10.1145/1869459
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 17 October 2010
    Published in SIGPLAN Volume 45, Issue 10

    Check for updates

    Author Tags

    1. AspectJ
    2. aspect oriented programming
    3. java

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

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

    Other Metrics

    Citations

    Cited By

    View all
    • (2015)A Sound Type System for Layer Subtyping and Dynamically Activated First-Class LayersProgramming Languages and Systems10.1007/978-3-319-26529-2_24(445-462)Online publication date: 9-Dec-2015
    • (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 shellsProceedings of the 12th annual international conference companion on Aspect-oriented software development10.1145/2457392.2457410(39-40)Online publication date: 24-Mar-2013
    • (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
    • (2013)Method Shells: Avoiding Conflicts on Destructive Class Extensions by Implicit Context SwitchesSoftware Composition10.1007/978-3-642-39614-4_4(49-64)Online publication date: 2013
    • (2012)Supporting methods and events by an integrated abstractionProceedings of the 9th ECOOP Workshop on Reflection, AOP, and Meta-Data for Software Evolution10.1145/2237887.2237889(7-10)Online publication date: 13-Jun-2012
    • (2012)Method sheltersProceedings of the 11th annual international conference on Aspect-oriented Software Development10.1145/2162049.2162065(131-142)Online publication date: 25-Mar-2012
    • (2012)Feature-oriented programming with family polymorphismProceedings of the 3rd international workshop on Variability & Composition10.1145/2161996.2161998(1-6)Online publication date: 26-Mar-2012
    • (2011)The road to feature modularity?Proceedings of the 15th International Software Product Line Conference, Volume 210.1145/2019136.2019142(1-8)Online publication date: 21-Aug-2011
    • (2010)Mostly modular compilation of crosscutting concerns by contextual predicate dispatchACM SIGPLAN Notices10.1145/1932682.186950345:10(539-554)Online publication date: 17-Oct-2010

    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