On reconciling patches and aspects

  • Authors:
  • Laurent Burgy;Marc E. Fiuczynski;Marco Yuen;Robert Grimm

  • Affiliations:
  • Princeton University, Princeton, NJ, USA;Princeton University, Princeton, NJ, USA;University of Victoria, Victoria, BC, Canada;New York University, New York, NY, USA

  • Venue:
  • Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

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.