techniques that allow the operations of a program to be intercepted and intervened with are known . these techniques are restricted by the same limited view of the program &# 39 ; s data that is currently available at a base level of an object or method . some aspects need access to more information about the program &# 39 ; s data of one or more objects than is available at the base level . an aspect of aspect - oriented programming systems , methods and environments examines the results of a computation at one stage . that aspect affects only subsequent stages of the computation , so that no circularity exists . custom flow analyses , whether local or global , can also be performed at each stage to propagate non - local information . “ macro ” style programming can be reduced or avoided , as programming can be facilitated in terms of manipulating the results of various computational stages instead of in terms of manipulating blocks of code .