Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Execution levels for aspect-oriented programming: design, semantics, implementations and applications
Tanter É., Figueroa I., Tabareau N. Science of Computer Programming80 311-342,2014.Type:Article
Date Reviewed: Mar 26 2015

I was rather surprised when asked to review this particular paper, as I thought that aspect-oriented software development (AOSD) was essentially defunct. As the authors themselves say elsewhere:

Aspect-oriented programming (AOP) aims to enhance modularity and reusability in software systems by offering an abstraction mechanism to deal with crosscutting concerns. However, in most general-purpose aspect languages aspects have almost unrestricted power, eventually conflicting with these goals. [1]

However, knowing the technical strength of the authors, I was intrigued.

The authors recognize that aspects may indeed be a useful conceptual mechanism for programming if they are seen from a metaprogramming point of view. Their solution: phase separation. What is unfortunate is that the authors do not seem to be aware of staging, which is a well-understood mechanism for achieving this kind of homogeneous metaprogramming. In Taha and Sheard [2], they would have found explicit mention of levels of execution and operations akin to their up and down operators, as well as an analysis of what can go wrong if their use is unrestricted.

Having said that, this paper is still an excellent read. For those who are unaware of the functional approach to metaprogramming, the authors stay within the boundaries of more traditional object-oriented (OO)-style AOP and use that terminology consistently. The paper does an excellent job of discussing the (complex!) problems of AOP. The authors put forward their own solution, followed by a nice empirical evaluation section, before diving into a formal description of their solution. Of course, since their base language is full of effects, this complicates matters substantially. Unlike many other papers, this is truly a formalization: the authors link to a PLT Redex file with the model (and informal proofs in an appendix). Of course, they could have done one better and proved some correctness properties as well (using Coq, with which they are well acquainted); perhaps they left that for a future work. They also detail a practical implementation, also available for download. Last but not least: it is very well written.

Although I still firmly believe that the generative approach to weaving aspects [3] works better, the authors of this paper make a compelling case that applying ideas from staging to an aspect language can appropriately tame aspects so as to make them a viable, long-term development methodology.

Reviewer:  Jacques Carette Review #: CR143290 (1506-0496)
1) Figueroa, I.; Tabareau, N.; Tanter, É. Transactions on aspect-oriented software development XI (LNCS 8400). Springer, New York, NY, 2014.
2) Taha, W.; Sheard, T. MetaML and multi-stage programming with explicit annotations. Theoretical Computer Science 248, 1-2(2000), 211–242.
3) Carette, J.; Kiselyov, O. Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code. Science of Computer Programming 76, 5(2011), 349–375.
Bookmark and Share
  Featured Reviewer  
 
Multigrid And Multilevel Methods (G.1.8 ... )
 
 
Correlation And Regression Analysis (G.3 ... )
 
 
Numerical Analysis (G.1 )
 
Would you recommend this review?
yes
no
Other reviews under "Multigrid And Multilevel Methods": Date
Additive and multiplicative multi-grid--a comparison
Bastian P., Hackbusch W. (ed), Wittum G. Computing 60(4): 345-364, 1998. Type: Article
Mar 1 1999
Energy optimization of algebraic multigrid bases
Mandel J., Brezina M., Vaněk P. Computing 62(3): 205-228, 1999. Type: Article
Oct 1 1999
Multigrid
Trottenberg U., Oosterlee C., Schüller A., Brandt A., Oswald P., Stüben K., Academic Press, Inc., Orlando, FL, 2001.  631, Type: Book (9780127010700)
Dec 1 2001
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy