[PRL] AOP questions

John Clements clements at brinckerhoff.org
Wed Mar 30 10:06:22 EST 2005


On Mar 30, 2005, at 9:08 AM, Doug Orleans wrote:

> 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.

I see that our basic difference is probably one of terminology.  That 
is, you want to define evaluation as a tree, rather than as a sequence 
of states.  My "sequence" is an inorder traversal of your tree.  The 
tree diagram gives a nice way of specifying certain intervals, namely 
those which begin at a given point in the tree and (after an inorder 
traversal) return to the same point in the tree.  This also suggests 
why the term "join point" is used.  Things get pretty messed up for 
non-tree-like evaluations, though;  what about exceptions, or (Heaven 
forbid) continuations?

Thanks for clarifying the intuition.

john
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2430 bytes
Desc: not available
Url : https://lists.ccs.neu.edu/pipermail/prl/attachments/20050330/3ff2076f/smime.bin


More information about the PRL mailing list