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.
- }}Aldrich, J.: Open modules: Modular reasoning about advice. In: ECOOP 2005. pp. 144--168. LNCS 3586, Springer-Verlag (2005) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355--371 (2004) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Blackburn, S.M., et al.: The DaCapo benchmarks: Java benchmarking development and analysis. In: Proc. of ACM OOPSLA. pp. 169--190. ACM (2006) Google Scholar
Digital Library
- }}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 Scholar
- }}Bracha, G., Cook, W.: Mixin-based inheritance. In: Proc. of OOPSLA/ECOOP '90. pp. 303--311. ACM Press (1990) Google Scholar
Digital Library
- }}Chiba, S.: Load-time structural reflection in Java. In: ECOOP 2000. pp. 313--336. LNCS 1850, Springer-Verlag (2000) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}Chiba, S., Ishikawa, R.: Aspect-oriented programming beyond dependency injection. In: ECOOP 2005. pp. 121--143. LNCS 3586, Springer-Verlag (2005) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Cross Ref
- }}Ekman, T., Hedin, G.: The Jastadd extensible Java compiler. In: Proc. of ACM OOPSLA. pp. 1--18. ACM (2007) Google Scholar
Digital Library
- }}Ernst, E.: Family polymorphism. In: ECOOP 2001 - Object-Oriented Programming. pp. 303--326. LNCS 2072, Springer-Verlag (2001) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}Griswold, W.G., et al.: Modular software design with crosscutting interfaces. IEEE Software 23(1), 51--60 (2006) Google Scholar
Digital Library
- }}Hannemann, J., Kiczales, G.: Design pattern implementation in java and aspectj. In: Proc. of ACM OOPSLA. pp. 161--173 (2002) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3), 125--151 (2008)Google Scholar
Cross Ref
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Koppen, C., Stoerzer, M.: Pcdiff: Attacking the fragile pointcut problem. In: Proc. of European Interactive Workshop on Aspects in Software (EIWAS'04) (2004)Google Scholar
- }}Lesiecki, N.: Improve modularity with aspect-oriented programming. http://www.ibm.com/developerworks/java/library/j-aspectj (2002)Google Scholar
- }}Malabarba, S., et al.: Runtime support for type-safe dynamic Java classes. In: ECOOP 2000. pp. 337--361. LNCS 1850, Springer-Verlag (2000) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Millstein, T.: Practical predicate dispatch. In: Proc. of ACM OOPSLA. pp. 345--364. ACM (2004) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. In: Proc. of ACM OOPSLA. pp. 99--115 (2004) Google Scholar
Digital Library
- }}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 Scholar
- }}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 Scholar
Digital Library
- }}Parnas, D.L.: Information distributions aspects of design methodology. In: Proc. of IFIP Congress '71. pp. 26--30 (1971)Google Scholar
- }}Qi, X., Myers, A.C.: Sharing classes between families. In: Proc. of Conf. on Programming Language Design and Implementation. pp. 281--292 (2009) Google Scholar
Digital Library
- }}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 Scholar
Cross Ref
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Steimann, F.: The paradoxical success of aspect-oriented programming. ACM SIGPLAN Notices 41(10), 481--497 (2006) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Warth, A., Stanojević, M., Millstein, T.: Statically scoped object adaptation with expanders. In: Proc. of ACM OOPSLA. pp. 37--56 (2006) Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38--94 (Nov 1994) Google Scholar
Digital Library
Index Terms
Mostly modular compilation of crosscutting concerns by contextual predicate dispatch
Recommendations
Mostly modular compilation of crosscutting concerns by contextual predicate dispatch
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsThe 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 ...
Distributed dynamic weaving is a crosscutting concern
SAC '11: Proceedings of the 2011 ACM Symposium on Applied ComputingImplementation of distributed dynamic weaving is a crosscutting concern since the implementation is divided into several sub-concerns and some of them are crosscutting concerns. For example, it often includes a monitoring concern, which monitors the ...







Comments