ABSTRACT
In previous work, we presented a domain-specific enhancement to C, called C4, that lets developers manage program extensions leveraging techniques inspired by the AOSD model as an alternative to the conventional patch approach [3]. Our goal is to offer: (1) tool compatibility letting programmers develop, integrate, modify, and debug C4-based extensions that preserve their existing development workflow and leverages their existing tools rather than requiring additional tools; (2) code understandability of the C4 syntax such that is it straightforward for an uninitiated C programmer to use immediately; and, (3) runtime performance achieving near-zero overhead such that it can be used even in performance critical execution paths. As such C4 source code can be viewed as the result of weaving in AOSD style introductions and advices inline into C program. However, C4 lacked a proper representation of its unwoven form--i.e., what's conventionally in AOSD circles referred to as the pointcut language. This paper makes a case for B4: a patch-based pointcut representation of unwoven C4 and contrasts it with development-oriented pointcut languages belonging to the AspectC family that have been defined for the C programming language.
- Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn, Using aspectC to improve the modularity of path-specific customization in operating system code. SIGSOFT Softw. Eng. Notes 26 (2001) 88--98. Google ScholarDigital Library
- M.D. Ernst, G.J. Badros, and D. Notkin, An Empirical Analysis of C Preprocessor Use. IEEE Transactions on Software Engineering 28 (2002) 1146--1170. Google ScholarDigital Library
- M.E. Fiuczynski, patch (1) Considered Harmful, Tenth Workshop on Hot Topics in Operating Systems, Sante Fe, NM, 2005. Google ScholarDigital Library
- M.E. Fiuczynski, Better Tools for Kernel Evolution, Please! ;login: 30 (2005) 8--10.Google Scholar
- M. Gong, C. Zhang, and H.-A. Jacobsen. Systems Development with AspeCt-oriented C (ACC). Connections 2007 (ECE Symposium, University of Toronto), June 2007.Google Scholar
- Y. Padioleau, J. Lawall, G. Muller, René Rydhof Hansen. Documenting and Automating Collateral Evolutions in Linux Device Drivers. EuroSys 2008, 247--260. Google ScholarDigital Library
- A. Reynolds, M. E. Fiuczynski, and R. Grimm. On the feasibility of an AOSD approach to Linux kernel extensions. 7th Workshop on Aspects, Components, and Patterns for Infrastructure Software (2008). Google ScholarDigital Library
- Olaf Spinczyk, Daniel Lohmann, and Matthias Urban, Advances in AOP with AspectC++, Software Methodologies, Tools and Techniques (SoMeT 2005), IOS Press, September, 2005, Tokyo, Japan. Google ScholarDigital Library
- M. Yuen, M. E. Fiuczysnki, R. Grimm, Y. Coady, and D. Walker. Making extensibility of system software practical with the C4 toolkit. Workshop on Software Engineering Properties of Languages and Aspect Technologies (2006).Google Scholar
Index Terms
- On reconciling patches and aspects
Recommendations
Composing aspects with aspects
AOSD '10: Proceedings of the 9th International Conference on Aspect-Oriented Software DevelopmentAspect-oriented programming languages modularize crosscutting concerns by separating the concerns from a base program in aspects. What they do not modularize well is the code needed to manage interactions between the aspects themselves. Therefore ...
Exceptions and aspects: the devil is in the details
SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineeringIt is usually assumed that the implementation of exception handling can be better modularized by the use of aspect-oriented programming (AOP). However, the trade-offs involved in using AOP with this goal are not well-understood. This paper presents an ...
Morphing aspects: incompletely woven aspects and continuous weaving
AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software developmentWeaving is one of the fundamental mechanisms of aspect-oriented systems. A weaver composes different aspects with the base system by determining and adapting all parts where aspect specific elements are needed eventually. At runtime, timeconsuming join ...
Comments