ABSTRACT
Aspects are a novel programming language feature, to express concerns in program design that crosscut traditional abstraction boundaries. The focus of this paper are dynamic aspects. Such aspects are specified as pointcut designators (patterns in the call stack), coupled with advice (code whose execution is triggered by the given pattern). We propose a more primitive syntax for pointcut designators, based on regular expressions. This primitive syntax facilitates a new static analysis that in turn enables a more efficient implementation of aspects.
- M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting object interactions using composition filters. In R. Guerraoui, O. Nierstrasz, and M. Riveill, editors, ECOOP '93 Workshop on Object-based Distributed Programming, volume 791 of Lecture Notes in Computer Science, pages 152--184. Springer, 1994.]] Google ScholarDigital Library
- U. Aßmann and A. Ludwig. Aspect Weaving by Graph Rewriting. In U. W. Eisenecker and K. Czarnecki, editors, Generative Component-based Software Engineering (GCSE), number 1799 in Lecture Notes in Computer Science, Erfurt, 1999.]] Google ScholarDigital Library
- R. C. Backhouse. Closure algorithms and the star-height problem of regular languages. Ph.d. thesis, Imperial College, London, 1975.]]Google Scholar
- The Caml language, 2002. http://caml.inria.fr/.]]Google Scholar
- Communications of the ACM. Volume 44:10, October 2001. Special issue on aspect-oriented programming.]]Google Scholar
- J. H. Conway. Regular Algebra and Finite Machines. Chapman and Hall, 1971.]]Google Scholar
- O. de Moor. Universal regular path queries. Higher-Order and Symbolic Computation, to appear.]] Google ScholarDigital Library
- O. de Moor, S. Drape, D. Lacey, and G. Sittampalam. Incremental program analysis via language factors. submitted for publication, 2002.]]Google Scholar
- R. Douence, P. Fradet, and M. Südholt. A framework for the detection and resolution of aspect interactions. In Proceedings of the ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE'02), 2002.]] Google ScholarDigital Library
- R. Douence, O. Motelet, and M. Sudholt. A formal definition of crosscuts. In A. Yonezawa and S. Matsuoka, editors, Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (Reflection 2001), volume 2192 of Lecture Notes in Computer Science, pages 170--186. Springer, 2001.]] Google ScholarDigital Library
- M. Fowler. Refactoring: improving the design of existing code. Addison Wesley, 2000.]]Google ScholarDigital Library
- D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. MIT Press, second edition, 2001.]] Google ScholarDigital Library
- Y. Futamura. Partial evaluation of computation process --- an approach to a compiler-compiler. Higher-order and Symbolic Computation, 12(4):381--391, 1999. Reprinted from Systems, Computers, Controls 2(5):45--50, 1971.]] Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995.]] Google ScholarDigital Library
- D. Grove, G. Furrow, J. Dean, and C. Chambers. Call graph construction in object-oriented languages. In ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA). ACM Press, 1997.]] Google ScholarDigital Library
- W. Harrison and H. Ossher. Subject-oriented programming (a critique of pure objects). In A. Paepcke, editor, ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 411--428. ACM Press, 1993.]] Google ScholarDigital Library
- C. A. R. Hoare. Quicksort. Computer Journal, 5:10--15, 1962.]]Google ScholarCross Ref
- G. Kiczales and J. des Rivieres. The Art of the Metaobject Protocol. MIT Press, 1991.]] Google ScholarDigital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersen, J. Palm, and W. G. Griswold. An overview of AspectJ. In J. L. Knudsen, editor, European Conference on Object-oriented Programming, volume 2072 of Lecture Notes in Computer Science, pages 327--353. Springer, 2001.]] Google ScholarDigital Library
- G. Kiczales, J. Lamping, A. Menhdekar, C. Maeda, C. Lopes, J. Loingties, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, European Conference on Object-oriented Programming, volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer, 1997.]]Google Scholar
- K. J. Lieberherr. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, 1996.]] Google ScholarDigital Library
- Y. A. Liu and F. Yu. Solving regular path queries. In Proceedings of the 6th International Conference on Mathematics of Program Construction (MPC), volume 2386 of Lecture Notes in Computer Science, pages 195--208. Springer Verlag, 2002.]] Google ScholarDigital Library
- H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In Foundations of Aspect-Oriented Languages (FOAL), Workshop at AOSD 2002, Technical Report TR #02--06, pages 17--26. Iowa State University, 2002.]]Google Scholar
- T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In pop195, pages 49--61, jan 1995.]] Google ScholarDigital Library
- D. Sereni. A definitional interpreter for aspects. http://www.comlab,ox.ac.uk/oucl/research/areas/progtools/aspects, 2002.]]Google Scholar
- V. Sundaresan, L. Hendren, C. Razafimahefa, R. Vallée-Rai, P. Lam, E. Gagnon, and C. Godin. Practical virtual method call resolution for Java. ACM SIGPLAN Notices, 35(10):264--280, 2000.]] Google ScholarDigital Library
- R. E. Tarjan. Fast algorithms for solving path problems. Journal of the Association for Computing Machinery, 28(3):594--614, 1981.]] Google ScholarDigital Library
- M. Wand, G. Kiczales, and C. Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. In Foundations of Aspect-Oriented Languages (FOAL), Workshop at AOSD 2002, Technical Report TR #02--06, pages 1--8. Iowa State University, 2002.]]Google Scholar
- M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10:352--357, 1984.]]Google ScholarDigital Library
- J. Zhao. Slicing aspect-oriented software. In 10th IEEE Workshop on Program Comprehension, pages 251--260, 2002.]] Google ScholarDigital Library
Index Terms
- Static analysis of aspects
Recommendations
A theory of aspects
This paper define the semantics of MinAML, an idealized aspect-oriented programming language, by giving a type-directed translation from its user-friendly external language to its compact, well-defined core language. We argue that our framework is an ...
Are monitoring crosscutting concerns really refactorable into aspects?: an empirical study
IWOR '19: Proceedings of the 3rd International Workshop on RefactoringMonitoring concerns' implementation crosscuts a software's system core concerns' implementation, leading to difficult to maintain and understand source code. Other paradigms have been proposed for crosscutting concerns implementation that should improve ...
Incremental analysis of interference among aspects
FOAL '08: Proceedings of the 7th workshop on Foundations of aspect-oriented languagesOften, insertion of several aspects into one system is desired and in that case the problem of interference among the different aspects might arise, even if each aspect individually woven is correct relative to its specification. In this type of ...
Comments