ABSTRACT
A crosscut language is used to describe at which points an aspect crosscuts a program. An important issue is how these points can be captured using the crosscut language without introducing tight coupling between the aspect and the program. Such tight coupling harms the evolvability of the program and the reusability of the aspect. Current pattern-based capturing already offers a certain decoupling between aspects and the program but it may still suffer from what we call the arranged pattern problem. In this paper, we discuss this problem and present a logic-based crosscut language from which we distill what language features are beneficial to avoid this problem.
- Johan Brichau, Kim Mens, and Kris De Volder. Building composable aspect-specific languages using logic metaprogramming. In D. Batory, C. Consel, and W. Taha, editors, Proceedings of GPCE Conference, LNCS, pages 110--127. Springer-Verlag, 2002.]] Google ScholarDigital Library
- Johan Brichau, Wolfgang De Meuter, and Kris De Volder. Jumping aspects. In Tarr et al. {32}.]]Google Scholar
- Yvonne Coady and Gregor Kiczales. Exploring an Aspect-Oriented approach to OS code. In Tarr et al. {31}.]]Google Scholar
- Rémi Douence, Olivier Motelet, and Mario Südholt. A formal definition of crosscuts. Technical Report 01/3/INFO, Ecole des Mines de Nantes, 2001.]]Google ScholarDigital Library
- Robert E. Filman. Aspect-oriented programming is quantification and obliviousness. In Tarr et al. {31}.]]Google Scholar
- Peter Flach. Simply Logical. John Wiley & Sons, 1994.]]Google Scholar
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: elements of reusable Object-Oriented software. Addison-Wesley, 1995.]] Google ScholarDigital Library
- Adele Goldberg and Dave Robson. Smalltalk-80: the language. Addison-Wesley, 1983.]] Google ScholarDigital Library
- Kris Gybels. Aspect-Oriented Programming using a Logic Meta Programming language to express cross-cutting through a dynamic joinpoint structure. Licentiate's thesis, Vrije Universiteit Brussel, 2001.]]Google Scholar
- Jim Hugunin. The next steps for aspect-oriented programming languages (in java). In Workshop on New Visions for Software Design and Productivity: Research and Applications, 2001.]]Google Scholar
- Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. Partial Evaluation and Automatic Program Generation. Prentice Hall International, 1993.]] Google ScholarDigital Library
- Mik Kersten and Gail C. Murphy. Atlas: A case study in building a web-based learning environment using aspect-oriented programming. In Proceedings of the ACM Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 340--352. ACM, 1999.]] Google ScholarDigital Library
- Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William Griswold. Getting started with AspectJ. Communications of the ACM, 44(10):59--65, 2001.]] Google ScholarDigital Library
- Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. In Proceedings of ECOOP 2001, LNCS. Springer-Verlag, 2001.]] Google ScholarDigital Library
- Gregor Kiczales, Jim Hugunin, Mik Kersten, John Lamping, Cristina Lopes, and William G. Griswold. Semantics-based crosscutting in aspectj. In Peri Tarr, Anthony Finkelstein, William Harrison, Bashar Nuseibeh, Harold Ossher, and Dewayne Perry, editors, Workshop on Multi-Dimensional Separation of Concerns in Software Engineering at ICSE 2000, 2000.]]Google Scholar
- Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Proceedings of the European conference on Object-Oriented Programming. Springer-Verlag, jun 1997.]]Google ScholarCross Ref
- Martin Lippert and Cristina Videira Lopes. A study on exception detection and handling using aspect-oriented programming. In Proceedings of the 22nd International Conference on Software Engineering. ACM Press, 2000.]] Google ScholarDigital Library
- Cristina Lopes, Gregor Kiczales, Bedir Tekinerdogan, and Wolfgang de Meuter, editors. International Workshop on Aspect-Oriented Programming at ECOOP, 1998.]]Google Scholar
- Cristina Videira Lopes. D: A language framework for distributed programming. Technical Report SPL97-010, P9710047, Xerox PARC, 1997.]]Google Scholar
- Cristina Videira Lopes. Recent developments in AspectJ. In Lopes et al. {18}.]]Google Scholar
- Hidehiko Masuhara, Gregor Kiczales, and Chris Dutchyn. Compilation semantics of aspect-oriented programs. In Gary T. Leavens and Ron Cytron, editors, Foundations of Aspect-Oriented Languages Workshop at AOSD 2002, number 02--06 in Tech Report, pages 17--26. Department of Computer Science, Iowa State University, 2002.]]Google Scholar
- Anurag Mendhekar, Gregor Kiczales, and John Lamping. RG: A case study for Aspect-Oriented Programming. Technical Report SPL97-009 P9710044, Xerox Palo Alto Research Center, 1997.]]Google Scholar
- Kim Mens, Isabel Michiels, and Roel Wuyts. Supporting software development through declaratively codified programming patterns. In Proceedings of the 13th SEKE Conference, pages 236--243. Knowledge Systems Institute, 2001.]]Google Scholar
- Naftaly Minsky. Law-governed regularities in object systems. Theory and Practice of Object Systems (TOPAS) (John Wiley), 2(4), 1996.]] Google ScholarDigital Library
- Doug Orleans and Karl Lieberherr. Dj: Dynamic adaptive programming in java. In Reflection 2001: Meta-level Architectures and Separation of Crosscutting Concerns, Kyoto, Japan, September 2001. Springer Verlag. 8 pages.]] Google ScholarDigital Library
- Harold Ossher and Peri L. Tarr. Hyper/J: multi-dimensional separation of concerns for Java. In Proceedings of ICSE 2000, pages 734--737, 2000.]] Google ScholarDigital Library
- Renaud Pawlak, Lionel Seinturier, Laurence Duchien, and Gerard Florin. Jac: A flexible and efficient solution for aspect-oriented programming in java. In Reflection 2001: Meta-level Architectures and Separation off Crosscutting Concerns, Kyoto, Japan, September 2001. Springer Verlag.]] Google ScholarDigital Library
- Andrei Popovici, Thomas Gross, and Gustavo Alonso. Dynamic weaving for Aspect-Oriented Programming. In Gregor Kiczales, editor, 1st international conference on Aspect-Oriented Software Development, april 2002.]] Google ScholarDigital Library
- Andreas Speck, Elke Pulvemüller, and Mira Mezini. Reusability of concerns. In Tarr et al. {32}.]]Google Scholar
- Mario Südholt and Pascal Fradet. Aop: towards a generic framework using program transformation and analysis. In Lopes et al. {18}.]]Google Scholar
- Peri Tarr, Lodewijk Bergmans, Martin Griss, and Harold Ossher, editors. Proceedings of the Workshop on Advanced Separation of Concerns at OOPSLA 2000, 2000.]]Google Scholar
- Peri Tarr, Maja D'Hondt, Christina Lopes, and Lodewijk Bergmans, editors. International Workshop on Aspects and Dimensional Computing at ECOOP, 2000.]] Google ScholarDigital Library
- Kris De Volder. Aspect-Oriented Logic Meta Programming. In Proceedings of the Second International Conference on Metalevel Architectures and Reflection, volume 1616 of Lecture Notes in Computer Science. Springer-Verlag, 1999.]] Google ScholarDigital Library
- Detlef Vollmann. Visibility of join-points in AOP and implementation languages. In Pascal Constanza, Gunther Kniesel, Katharina Mehner, Elke Pulvermuller, and Andreas Speck, editors, Second Workshop on Aspect-Oriented Software Development, 2002.]]Google Scholar
- Roel Wuyts. Declarative reasoning about the structure of object-oriented systems. In Proceedings of TOOLS-USA '98, 1998.]] Google ScholarDigital Library
Index Terms
- Arranging language features for more robust pattern-based crosscuts
Recommendations
Towards a pattern language for aspect-based design
PLATE '09: Proceedings of the 1st workshop on Linking aspect technology and evolutionWith the maturation and widespread adoption of AOSD comes the need for patterns and best practices to solve recurring problems. Such patterns have been documented in different publications. Besides a conclusive catalog, a system to relate the patterns ...
Modularizing crosscuts in an e-commerce application in Lisp using HALO
ILC '07: Proceedings of the 2007 International Lisp ConferenceSome program concerns cannot be cleanly modularized, and their implementation leads to code that is both hard to understand and maintain. In this paper we consider extending an e-commerce application, written in CLOS, with two of such crosscutting ...
A Formal Definition of Crosscuts
REFLECTION '01: Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting ConcernsCrosscutting, i.e. relating different program points is one of the key notions of Aspect-Oriented Programming. In this article, we consider a general and operational model for crosscutting based on execution monitors.A domain-specific language for the ...
Comments