Discussion with gregor kiczales at ubc
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

Discussion with Gregor Kiczales at UBC PowerPoint PPT Presentation


  • 64 Views
  • Uploaded on
  • Presentation posted in: General

Discussion with Gregor Kiczales at UBC. Ontology of AOP Ontology is the study of what there is, an inventory of what exists. An ontological commitment is a commitment to an existence claim for certain entities. Slides 2 - 5 and the last one are Gregor’s.

Download Presentation

Discussion with Gregor Kiczales at UBC

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Discussion with gregor kiczales at ubc

Discussion with Gregor Kiczales at UBC

  • Ontology of AOP

  • Ontology is the study of what there is, an inventory of what exists. An ontological commitment is a commitment to an existence claim for certain entities.

  • Slides 2 - 5 and the last one are Gregor’s

An ontology is, in simple terms, a collection of concepts with

relations among them plus constraints on the relations.

AO Mechanisms in Demeter


Basis of crosscutting

basis of crosscutting

  • a join point model (JPM) has 3 critical elements

    • what are the join points

      • in AspectJ

        • points in runtime call graps members

    • means of identifying join points

      • in AspectJ

        • signatures (plus …)

    • means of specifying semantics at join points

      • in AspectJ

        • advice

        • define members

AO Mechanisms in Demeter


Basis of crosscutting1

basis of crosscutting

  • a join point model (JPM) has 3 critical elements

    • what are the join points

      • in AspectJ

        • points in runtime call graph

        • class members

    • means of identifying join points

      • in AspectJ

        • pointcuts

        • member signatures (plus …)

    • means of specifying semantics at join points

      • in AspectJ

        • advice

        • define members

dynamic JPMstatic JPM

AO Mechanisms in Demeter


Range of aop languages

range of AOP languages

AO Mechanisms in Demeter


Range of aop languages1

means of … join points

JPM

join points

identifying

specifying semantics at

AspectJ dynamic JPM

points in execution call, get, set…

signaturesw/ wildcards & other properties of JPs

advice

static JPM

class members

signatures

add members

Composition Filters

message sends & receptions

signature & property based object queries

wrappers declarative (filters) imperative (advice)

Hyper/J

members

signatures

add, compose (and remove) members

Demeter traversals

types

succinct traversal specs

generate traversals

range of AOP languages

See next slide for changes to Demeter

AO Mechanisms in Demeter


Range of aop languages2

range of AOP languages

AO Mechanisms in Demeter


Range of aop languages3

means of … join points

JPM

join points

identifying

specifying semantics at

AspectJ dynamic JPM

points in execution call, get, set…

signaturesw/ wildcards & other properties of JPs

advice

static JPM

class members

signatures

add members

DJ

dynamic JPM 1

dynamic JPM 2

dynamic JPM 3

when traversal reaches object or edge (method traverse)

when traversal reaches object (methods fetch, gather, asList)

nodes in object graphs

visitor method signatures

source and targets of traversal

trav. spec. s

class graph g

object graph o

visitor method bodies

method name (fetch, gather, asList)

s+g+o(result = traversal implementation = edges to traverse at nodes in object graph)

range of AOP languages

AO Mechanisms in Demeter


Composing join point models

Composing join point models

  • Traversal Spec JPM: In Demeter we use traversal specifications and the class graph to define a traversal implementation (either static or dynamic)

  • Visitor JPM: The result of Traversal Spec. JPM is used to define a second JPM:

    • The traversal implementation defines nodes and edge visits.

    • Visitor signatures define the nodes and edges where additional advice is needed: they are the means of identifying join points.

    • The means of specifying semantics at join points are the visitor bodies.

AO Mechanisms in Demeter


Dj dynamic jpm 3

DJ: dynamic JPM 3

  • The join points are nodes in object graphs. They are not dynamic call graph join points nor class members!

  • The means of identifying the join points for a given object graph o are a strategy s and the class graph g. o must conform to g.

  • The means of specifying the semantics at the join points are again s and g. See paper with Mitch Wand for the formal details behind this JPM.

AO Mechanisms in Demeter


Demeterj static jpm 1

DemeterJ: static JPM 1

  • The means of identifying the join points and of specifying the semantics at the join points are the same.

  • The reason is that s+g both

    • select the classes that will get traversal semantics

    • determine the details of the traversal semantics

AO Mechanisms in Demeter


Demeterj static jpm 3

DemeterJ: static JPM 3

  • The means of identifying the join points (class members) is done by the class graph.

  • When we add tokens to the class graph we get a grammar that contains instructions for parsing and printing behavior.

  • A grammar is an aspect (external representation aspect): the adhoc implementation cuts across all classes.

AO Mechanisms in Demeter


Ao design in uml

foo

dynamic JPM (~ AspectJ)

what happens in pattern

bar

Composition Patterns

static JPM (~ Hyper/J)

binds pattern to base code

UML class & interaction diagrams already crosscut

by-class vs. by-interaction organizations

AO design in UML

[Clarke, Walker]

AO Mechanisms in Demeter


Masuhara kiczales modeling framework for ao mechanisms

Masuhara/Kiczales Modeling Framework for AO Mechanisms

  • A and B: languages

  • X: result domain of weaving process

  • X[JP]: join points in X

  • A[ID], B[ID]: identify join points in X

  • A[Eff], B[Eff]: effecting semantics at jps

  • META: parameterize weaving process

AO Mechanisms in Demeter


Masuhara kiczales modeling framework for ao mechanisms1

Masuhara/Kiczales Modeling Framework for AO Mechanisms

  • X

  • X[JP]

  • A

  • A[ID]

  • A[Eff]

  • B

  • B[ID]

  • B[Eff]

  • META

AO Mechanisms in Demeter


Demeter static jpm 1 special case of open classes

Demeter static JPM 1: special case of Open Classes

Adds traversal methods

to a set of classes

  • X

    • Combined program

  • X[JP]

    • c declarations

  • A

    • c declarations including the class graph

  • A[ID]

    • Method signatures

  • A[Eff]

  • B

    • Traversal specifications

  • B[ID]

    • c names

  • B[Eff]

  • META

    • Traversal semantics: rules for translating traversal specifications to methods

AO Mechanisms in Demeter


Demeter static jpm 2 open classes

Demeter static JPM 2: Open Classes

See paper.

AO Mechanisms in Demeter


Demeter static jpm 3 special case of open classes

Demeter static JPM 3: special case of Open Classes

Adds parsing methods

to a set of classes

  • X

    • Combined program

  • X[JP]

    • c declarations

  • A

    • c declarations including the class graph

  • A[ID]

    • Method signatures

  • A[Eff]

  • B

    • Class dictionary (class graph enhanced with tokens defining the syntax addition)

  • B[ID]

    • c names

  • B[Eff]

  • META

    • rules for translating class dictionary to parsing methods

AO Mechanisms in Demeter


Demeter dynamic jpm 1 special case of pointcuts and advice

Demeter dynamic JPM 1: special case of Pointcuts and Advice

Adds advice to traversal methods

  • X

    • Traversal execution

  • X[JP]

    • Arrival at each object and has-a edge

  • A

    • Traversal methods

  • A[ID]

    • Method signatures

  • A[Eff]

    • Execute traversal method body

  • B

    • Visitor method declarations (serves as advice)

  • B[ID]

    • Visitor method signatures (serves as pointcut)

  • B[Eff]

    • Execute visitor method bodies

  • META

    • none

AO Mechanisms in Demeter


Demeter dynamic jpm 2 special case of trav

Demeter dynamic JPM 2: special case of TRAV

For methods fetch, gather and asList: special advice

AO Mechanisms in Demeter


Demeter dynamic jpm 3

Demeter dynamic JPM 3

  • X

    • Object graphs

  • X[JP]

    • Nodes in object graphs

  • A

    • Class graph

  • A[ID]

    • Class names

  • A[Eff]

  • B

    • Traversal specification

  • B[ID]

    • Class names

  • B[Eff]

    • Edges to traverse at node in object graph

  • META

    • Rules for traversal order: depth-first, breadth-first, left-to-right, etc.

AO Mechanisms in Demeter


Discussion with gregor kiczales at ubc

Demeter dynamic JPM 4: DJ with Functional Visitor

  • X

    • Traversal execution with runtime control (Subtraversal.apply(..))

  • X[JP]

    • Arrival at each object (Functional Visitor only available to nodes)

  • A

    • Regular Java Program (class/fields declarations)

  • A[ID]

    • Class/fields signatures

  • A[Eff]

    • Provide reachability (my understanding is to construct object graph conforming to the class graph)

  • B

    • Traversal specification and visitor method declarations (including the default one: combine(..))

  • B[ID]

    • Visitor method signatures (or the built-in semantics, for the combine(..))

  • B[Eff]

    • Execute the visitor methods and compute and combine the values and provide the runtime control over the traversal(subset of the traversal graph computed from the traversal specification)

  • META

Mixes two models together


Discussion with gregor kiczales at ubc

Demeter dynamic JPM 4: DJ with Functional Visitor

  • X

    • Traversal execution with runtime control (Subtraversal.apply(..))

  • X[JP]

    • Arrival at each object (Functional Visitor only available to nodes)

  • A

    • Regular Java Program defining traversals (class/fields declarations)

  • A[ID]

    • Method signatures

  • A[Eff]

    • Execute traversal method body

  • B

    • Visitor method declarations (including the default method: combine(..))

  • B[ID]

    • Visitor method signatures (or the built-in semantics, for the combine(..))

  • B[Eff]

    • Execute the visitor methods and compute and combine the values and provide the runtime control over the traversal

  • META

Taken apart


Conclusions

Conclusions

  • The Modelling Framework by Masuhara/Kiczales nicely captures the different AO mechanisms worked on by the Demeter team.

AO Mechanisms in Demeter


  • Login