skip to main content
research-article

Mostly modular compilation of crosscutting concerns by contextual predicate dispatch

Published:17 October 2010Publication History
Skip Abstract Section

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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355--371 (2004) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}Blackburn, S.M., et al.: The DaCapo benchmarks: Java benchmarking development and analysis. In: Proc. of ACM OOPSLA. pp. 169--190. ACM (2006) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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)Google ScholarGoogle Scholar
  7. }}Bracha, G., Cook, W.: Mixin-based inheritance. In: Proc. of OOPSLA/ECOOP '90. pp. 303--311. ACM Press (1990) Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}Chiba, S.: Load-time structural reflection in Java. In: ECOOP 2000. pp. 313--336. LNCS 1850, Springer-Verlag (2000) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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)Google ScholarGoogle Scholar
  11. }}Chiba, S., Ishikawa, R.: Aspect-oriented programming beyond dependency injection. In: ECOOP 2005. pp. 121--143. LNCS 3586, Springer-Verlag (2005) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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)Google ScholarGoogle ScholarCross RefCross Ref
  14. }}Ekman, T., Hedin, G.: The Jastadd extensible Java compiler. In: Proc. of ACM OOPSLA. pp. 1--18. ACM (2007) Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}Ernst, E.: Family polymorphism. In: ECOOP 2001 - Object-Oriented Programming. pp. 303--326. LNCS 2072, Springer-Verlag (2001) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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)Google ScholarGoogle Scholar
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}Griswold, W.G., et al.: Modular software design with crosscutting interfaces. IEEE Software 23(1), 51--60 (2006) Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}Hannemann, J., Kiczales, G.: Design pattern implementation in java and aspectj. In: Proc. of ACM OOPSLA. pp. 161--173 (2002) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3), 125--151 (2008)Google ScholarGoogle ScholarCross RefCross Ref
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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)Google ScholarGoogle Scholar
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}Koppen, C., Stoerzer, M.: Pcdiff: Attacking the fragile pointcut problem. In: Proc. of European Interactive Workshop on Aspects in Software (EIWAS'04) (2004)Google ScholarGoogle Scholar
  29. }}Lesiecki, N.: Improve modularity with aspect-oriented programming. http://www.ibm.com/developerworks/java/library/j-aspectj (2002)Google ScholarGoogle Scholar
  30. }}Malabarba, S., et al.: Runtime support for type-safe dynamic Java classes. In: ECOOP 2000. pp. 337--361. LNCS 1850, Springer-Verlag (2000) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. }}Millstein, T.: Practical predicate dispatch. In: Proc. of ACM OOPSLA. pp. 345--364. ACM (2004) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. }}Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. In: Proc. of ACM OOPSLA. pp. 99--115 (2004) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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)Google ScholarGoogle Scholar
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. }}Parnas, D.L.: Information distributions aspects of design methodology. In: Proc. of IFIP Congress '71. pp. 26--30 (1971)Google ScholarGoogle Scholar
  38. }}Qi, X., Myers, A.C.: Sharing classes between families. In: Proc. of Conf. on Programming Language Design and Implementation. pp. 281--292 (2009) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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)Google ScholarGoogle ScholarCross RefCross Ref
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. }}Steimann, F.: The paradoxical success of aspect-oriented programming. ACM SIGPLAN Notices 41(10), 481--497 (2006) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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) Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. }}Warth, A., Stanojević, M., Millstein, T.: Statically scoped object adaptation with expanders. In: Proc. of ACM OOPSLA. pp. 37--56 (2006) Google ScholarGoogle ScholarDigital LibraryDigital Library
  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 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. }}Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38--94 (Nov 1994) Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • 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

      Copyright © 2010 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 17 October 2010

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!