[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