The runtime behaviors of software systems are often subject to alteration or intervention after their development cycles for various reasons such as performance profiling, debugging, code specialization, and more. There are two separate domains related to the instrumentation of software systems, one being various performance measurement and instrumentation tools, the other the new aspect oriented programming (AOP) paradigm. This paper describes TinyC language, a language approach which experiments with the idea of implementing an aspect oriented language based upon existing system instrumentation techniques. Like other aspect oriented languages, TinyC uses new language constructs to allow programmers to intentionally compose systems in the dimensions of both components and aspects. In this paper, we discuss both the grammatical features and the compiler architecture of the TinyC language. Through the TinyC implementation, we demonstrate that a language approach can well bridge the gap between the AOP paradigm and the existing system instrumentation technologies. It greatly simplifies code instrumentation effort and provides runtime optimization at the application level.
[1]
Hans-Arno Jacobsen,et al.
Quantifying aspects in middleware platforms
,
2003,
AOSD '03.
[2]
Matthew Arnold,et al.
Adaptive optimization in the Jalapeno JVM
,
2000,
SIGP.
[3]
Wilson C. Hsieh,et al.
Runtime aspect weaving through metaprogramming
,
2002,
AOSD '02.
[4]
Markus Mock,et al.
A retrospective on: "an evaluation of staged run-time optimizations in DyC"
,
2004,
SIGP.
[5]
Amitabh Srivastava,et al.
Vulcan Binary transformation in a distributed environment
,
2001
.
[6]
Oscar Naim,et al.
MDL: a language and compiler for dynamic program instrumentation
,
1997,
Proceedings 1997 International Conference on Parallel Architectures and Compilation Techniques.
[7]
Cristina V. Lopes,et al.
Aspect-oriented programming
,
1999,
ECOOP Workshops.
[8]
Ron K. Cytron,et al.
Introduction of Program Instrumentation using Aspects
,
2001
.
[9]
Vasanth Bala,et al.
Transparent Dynamic Optimization: The Design and Implementation of Dynamo
,
1999
.