FOAL'06 Stephan Herrmann #1
Are Pointcuts a First-Class Language Construct?
Einführung Teil 1 Stephan Herrmann Technische Universität Berlin
stephan@cs.tu-berlin.de www.ObjectTeams.org
Are Pointcuts a First-Class Language Construct? Einfhrung Teil 1 - - PowerPoint PPT Presentation
Are Pointcuts a First-Class Language Construct? Einfhrung Teil 1 Stephan Herrmann Technische Universitt Berlin stephan@cs.tu-berlin.de www.ObjectTeams.org FOAL'06 Stephan Herrmann #1 Join Points? program element A join point is a
FOAL'06 Stephan Herrmann #1
stephan@cs.tu-berlin.de www.ObjectTeams.org
FOAL'06 Stephan Herrmann #2
FOAL'06 Stephan Herrmann #3
– distributive law does not hold in AspectJ
– debatable semantics
– call(T C.foo()) && set(T C.bar) ??
FOAL'06 Stephan Herrmann #4
– Bottom-up construction of AOP
– Terminology of „Join Point Interception“ – Meta model for join points
– Reverse methods – Model: pointcuts as classes – Compositionality for free
FOAL'06 Stephan Herrmann #5
– elements of the program, defined by meta model
– matching (wildcards etc.) ∨ functional queries
– binding: aspect method ← set of join points
– execution of join point may trigger aspect method
>
FOAL'06 Stephan Herrmann #6
– amenable to formal, static analysis – students can implement/understand the language
– Regarding AspectJ:
– Other dynamic approaches
– What do these have in common?
FOAL'06 Stephan Herrmann #7
m2() m3() mx()
<client>
trig2() trig3() trigx()
<advice>
consume one incoming call event produce sequence of outgoing events produce one outgoing call event consume sequence of incoming events
FOAL'06 Stephan Herrmann #8
– public team class T {
FOAL'06 Stephan Herrmann #9
– public team class T {
FOAL'06 Stephan Herrmann #10
– a low-cost concept – statically determined
– generalized/simulated by class – specialized syntax deferred
– join points: functional queries (meta model + set theory) – aspect binding: E(C)/A + overriding – composition as aspects-of-aspects