[PRL] AOP questions

Doug Orleans dougo at place.org
Wed Mar 30 09:08:04 EST 2005


John Clements writes:
 > Let's be _really_ concrete and say that the method m() is called just 
 > once during the execution, and it begins at step 2790 and ends at step 
 > 2902.  So in this case, the pointcut designates exactly one join point. 
 > Okay, suppose I specify "before" advice for this pointcut.  Well, it 
 > will hopefully get inserted before step 2790.  What if I specify 
 > "after" advice for this pointcut?  Well, it had better end up after 
 > step 2902.  For this reason, I believe that a "join point" must be 
 > defined as an execution interval, and not as a simple "point".

But no AOP language (except maybe ASPECT-COBOL) would let you apply
advice to arbitrary intervals, like "steps 2790 to 2834".  The join
point representing the execution of m() is a node in a graph, and
advice on that join point lets you modify the entry into and exit from
that node.  Or as Johan points out, the subgraph rooted at that node,
but the point is that it's atomic.  You could define "the execution
interval of JP" as a contiguous set of steps but I think that's
different from the join point JP itself.

 > You say "pointcut", I say "conditional breakpoint"... what's the 
 > difference?

I don't know, maybe nothing?  I don't know what exactly you mean by
"conditional breakpoint", maybe you should write a paper explaining
the connection!  Just don't confuse the mechanisms of AOP with the
purpose of AOP, which is separation of concerns.  If your debugger
scripts don't help with that, then you wouldn't really be able to call
it AOP.

--Doug



More information about the PRL mailing list