Abstract
By separating crosscutting concerns into modules, aspect-oriented programming (AOP) can greatly improve the maintainability, understandability and reusability of software. However, the asymmetric paradigm adopted by most AOP extensions could bring crosscutting concerns into the aspect code and thus limit the reusability of aspects.
Symmetric paradigms have been proposed to alleviate such limitations, but few extensions on such paradigm target at non-object-oriented languages, such as C. In this paper, we propose a symmetric aspect extension to the C language, called AspectC2C, and discuss implementation issues and benefits of this new extension comparing to the asymmetric ones.
- Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using aspectc to improve the modularity of path-specific customization in operating system. In proc. of European Software Eng. Conf. held jointly with Int'l Symp. Foundations of Software Eng. (ESEC/FSE), pages 88--98, 2001. Google Scholar
Digital Library
- P. J. Courtois, F. Heymans, and D. L. Parnas. Concurrent control with "readers" and "writers". Communications of the ACM, 14(10):667--668, October 1971. Google Scholar
Digital Library
- E. W. Dijkstra. The structure of the "the" multiprogramming system. Communications of the ACM, 11(5):341--346, May 1968. Google Scholar
Digital Library
- R. Douence, T. Fritz, N. Loriant, J.-M. Menaud, M. Sgura-Devillechaise, and M. Sdholt. An expressive aspect language for system applications with arachne. In proc. of International Conference on Aspect Oriented Software Development (AOSD), pages 27--38, March 2005. Google Scholar
Digital Library
- J. Hannemann and G. Kiczales. Design pattern implementation in java and aspectj. In proc. of Annual ACM SIGPLAN Conferences on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 161--173, November 2002. Google Scholar
Digital Library
- W. Harrison, H. Ossher, and P. Tarr. Asymmetrically vs. symmetrically organized paradigms for software composition. IBM Research Report, RC22685(W0212-147), December 2002.Google Scholar
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J. M. Loingtier, and J. Irwin. Aspect-oriented programming. In proc. of European Conference on Object-Oriented Programming(ECOOP), June 1997.Google Scholar
Cross Ref
- J. Lamping. The role of the base in aspect oriented programming. In proc. of the Workshop on Object-Oriented Technology, pages 289--291, 1999. Google Scholar
Digital Library
- H. Ossher and P. Tarr. Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM, 44(10):43--50, October 2001. Google Scholar
Digital Library
- H. Rajan and K. Sullivan. Eos: Instance-level aspects for integrated system design. In proc. of European Software Eng. Conf. held jointly with Int'l Symp. Foundations of Software Eng. (ESEC/FSE), pages 297--306, September 2003. Google Scholar
Digital Library
- H. Rajan and K. J. Sullivan. Classpects: Unifying aspect- and object-oriented language design. In proc. of International Conference on Software Engineering (ICSE), pages 59--68, May 2005. Google Scholar
Digital Library
- O. Spinczyk, D. Lohmann, and M. Urban. Aspectc++: an aop extension for c++. Software Developer's Jouranl, pages 68--76, May 2005.Google Scholar
- P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton. n degrees of separation: multi-dimensional separation of concerns. In proc. of International Conference on Software Engineering (ICSE), pages 107--119, May 1999. Google Scholar
Digital Library
Index Terms
AspectC2C: a symmetric aspect extension to the C language
Recommendations
Pluggable AOP: designing aspect mechanisms for third-party composition
Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applicationsStudies of Aspect-Oriented Programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. Languages specified in this manner have a fixed, non-extensible AOP functionality. This paper argues the ...
Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions
OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applicationsDomain specific aspect-oriented language extensions offer unique capabilities to deal with a variety of cross cutting concerns. Ideally, one should be able to use several of these extensions together in a single program. Unfortunately, each extension ...
Pluggable AOP: designing aspect mechanisms for third-party composition
OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsStudies of Aspect-Oriented Programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. Languages specified in this manner have a fixed, non-extensible AOP functionality. This paper argues the ...






Comments