From the weaver's point of view, if the reflection is the read access to the woven program, the instrumentation is the write access 2. However, in AOP, the allowed program modifications are a reduced set of modifications. The allowed modications are incremental regarding the existing structure of the initial program so that the aspects can be correctly composed together. These kinds of incremental modifications are called instrumentations because of previous discussions on the list.
There is no standard API for instrumentation. However, like reflection, instrumentation can happen at run time, compile time, or load time. Moreover, for each category, different implementations can be performed depending on the context and the AOE's environment (for instance, the instrumentation can be done directly on the source code or on the bytecode). It is thus important to us that the instrumentation API is normalized in order to change the underlying implementation depending on the AOE requirements.