Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf ·...
Transcript of Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf ·...
![Page 1: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/1.jpg)
1
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Interface-based aspect-oriented programming in Compose*: its language independency,
semantic point-cuts and aspect-interface detection possibilities
Mehmet AksitChair Software Engineering (TRESE)
Department of Computer ScienceUniversity of Twente
P.O. Box 2177500 AE Enschede, The Netherlands
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Table of contentsKey concepts of languages
Composition mechanisms
Invasive AOP
Language independence
Verification of semantic interference
Conclusions and future work
![Page 2: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/2.jpg)
2
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Mac
hine
orie
nted
Appl
icatio
nor
ient
ed
Where are we now in programming?
Von Neumann machine
Procedures &control statements
Abstract data types
OOP
AOP
Transitive hierarchicalcomposition(Inheritance)
Non-hierarchicalcomposition
This looks great, BUT!
Non-hierarchical mechanisms:Classification,Composition-
decomposition,Generalization-specialization
Universal abstraction mechanisms:Classification,Composition-
decomposition,Generalization-specialization
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
What are the key concepts of programming languages?
(for programming in the large!)
![Page 3: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/3.jpg)
3
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
What are programming languages good for?
I guess, Problem solving bydelivering the right
program
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
pain
Requirements
problem1
Problems
Solutiondomain1
solution1
problem2
problemn
solution2
Solutiondomain2
+
If all is about problem solving..
Problem analysis
Solution domain analysissynthesis
verification
![Page 4: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/4.jpg)
4
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Requirements
Problems
Solutiondomain1
solution1solution2
Solutiondomain2
+
Problem decomposition, solution composition & semantics!
problem1
problem2
problemn
It must be about separation of
concerns, composition of concerns, and
semantics!!
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
But, then, ..what is the
right compositionmechanism?
![Page 5: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/5.jpg)
5
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Once upon a time..
End80’s
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Delegation, inheritance & reflection debateDelegation is inheritance
Delegation is better
I can do anything with
reflection
OOPSLA’86 OOPSLA’87 OOPSLA’87
![Page 6: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/6.jpg)
6
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Non-invasive generalization approaches (1)
point
Bh_point
Solid_line
Dashed-line Protection
Historypoint
Boundedpoint
Reusemechanisms
“interfacePredicates”
OOPSLA’88
The Sina language
The general idea behind the data abstraction model of Sina/st is that, starting from a simple object-based model, one can simulate various forms of abstractions without committing to a fixed number of alternative abstraction techniques such as delegation, relations or inheritance.
“DispatchControl”
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Non-invasive generalization approaches (2)
OOPSLA’87
The law-governed system
point Historypoint
Law-governed System
In Prolog“DispatchControl”
![Page 7: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/7.jpg)
7
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
But, what about the semantics
?
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Then some time has passed..
Begin90’s
![Page 8: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/8.jpg)
8
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Synchronization inheritance anomalies
Bergmans PhD 94MIT Press: Research directions
In concurrent OOP
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Synchronizationinheritanceanomalies
BoundedBuffer
data
putget
Locker
Lockunclock
HistoryBuffer
dataputget
gget
LockingBuffer
data
putget
This is an anomaly, I have
no reuse!Inheritance is
useless
![Page 9: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/9.jpg)
9
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Research on synchronization inheritance anomalies attracted some attention
ECOOP’93
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Real-time inheritance anomalies
ECOOP’94
![Page 10: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/10.jpg)
10
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Obstacles in object-oriented programmingincluded seven “crosscutting-like” problems
OOPSLA’92
Coordinated behavior:
tangled & scattered
Associative inheritance:
predicate dispatch
Multiple views:conditional dispatch
& logical order
Synchronizationinheritance:
synchron. dispatch
Arbitraryinheritance:Any dispatch
Atomic delegation:Atomic dispatch& logical order
Inheritance& delegation:
dispatching aspect
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
MCSEAI 98Sync.
IEEE PDS 97Distr sync
Composition-filters without superimposition
ECOOP92Multiple views
OBDS93Coordination
ECOOP94Realtime
JPDC 96Realtime & Sync
IEEE Software 91
Transactions
![Page 11: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/11.jpg)
11
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Aspect-identification and aspect-based re-engineering example (from OBDS’93)
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Then some more time has passed..
2nd half
of90’s
![Page 12: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/12.jpg)
12
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Invasive approaches
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Examples of AOP languages:AspectJ, HyperJ and
framework-based approaches
![Page 13: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/13.jpg)
13
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
AspectJOO languages
MOP(1985)
CLOS-MOP
Crosscuttingaspects (1996)
AspectJ(1997)
Reflection(Smith 81)
Adaptiveprogramming
(1996)
AspectJ(2001)
Domainspecificaspects
Generalpurposeaspects
ECOOP’97
ECOOP’01
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
AspectJ like models
Clearing House Account1 Account2
transferwithdraw
depositadvice Pointcut
designator
Call join point
execution join point
![Page 14: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/14.jpg)
14
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
HyperJ
OO languagesMultiple viewsconcerns
Combination ofinheritance hierarchies
(ECOOP 1992)
Subject-orientedprogramming
(1993)
HyperJ(2001)
Adaptinginterfaces
according tothe context
Composition ofClasses viarelational operators
OOPSLA’93
Kluwer01
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
HyperJ (continued)Class1
a1a2
m1m2
Class2
axay
mxmy
Class3
a1a2axay
M1m2mxmy
[ ]
![Page 15: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/15.jpg)
15
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Framework-based aspect-oriented approaches
Supported within a platform with a number of libraries & tools
Provides aspect weaving mechanisms as a tool
Becoming more and more popular
Mostly implement Composition Filters like mechanisms(using proxies/interceptors, etc.)
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
AOP languages have some concerns
Being able to compose crosscutting concerns is an additional benefit but, crosscutting concern mechanisms are “tangled with language semantics” (language dependent);
Extending existing languages with AOP constructs makes the languages too complex;
Verifying semantic correctness of compositions is still difficult;
Joinpoint level of composition is too low-level .
![Page 16: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/16.jpg)
16
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
How to address these problems?
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Step 1:Separation of composition operators
from concerns
![Page 17: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/17.jpg)
17
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Composition operators as dedicated interface extensions
Userdefined
error
meta
dispatch
wait
real-time
Compositionsemantics
Compositionlanguage
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Step 2:Composing composition operators
with concerns
![Page 18: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/18.jpg)
18
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Composition of composition operatorsusing “quantifiers”
Formatter
SoftwareModule 1
SoftwareModule 2
OR composer
Formatter
SoftwareModule 3
SoftwareModule 4
OR composer
Filters
Formatter
OR composer
superimposition
Concernformat&compose
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
The Composition-filters model
Filters aremodular andcomposableextensions& manipulatemessages
• Uniform model (everything is a “concern”)• Supports strong encapsulation (“interface programming”)
Super impositionin prolog
Concern my-concern
error
meta
dispatch
wait
real-time
Userdefined User
definederror
meta
dispatch
wait
real-time
ProgramminglanguageC, C++, Java, etc.
AspectJ: aspects – base code
AspectJ: weak encapsulation,
fine-grained joinpoint model
![Page 19: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/19.jpg)
19
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
First two claims of composition filters:
language independence
domain specific aspects as filters
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Simulated demonstration of the proof of these two claims
![Page 20: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/20.jpg)
20
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
What we will show in the demo
Composing a word counting ‘feature’ with the book shelfapplication as a modular concern
Composing a cache optimization concern with the word counting concern.
Language/platform independence
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Example: Bookshelf
![Page 21: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/21.jpg)
21
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Counting words and sentences
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Design using Composition Filters
![Page 22: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/22.jpg)
22
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Result of using Composition Filters
myBook.countWords();
myChapter.countWords();
myPar.countWords();
filtersDispatch
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Cache
Adding Caching
myBook.countWords();
myChapter.countWords();
myPar.countWords();
filtersDispatch
![Page 23: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/23.jpg)
23
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Conclusion of the first demonstration
Composing a word counting ‘feature’ with the bookshelf application
Composing the caching optimization concern as a high level concern with the word counting concern
Composition Filters tools work on C/ .NET / Java
BookShelf + WordCounting + Caching in JavaFibonacci + Caching in CSame concern code (Caching) reused!
Efficiency: filters can be in-lined -> low overhead
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
The third claim of the Composition-Filters
Should be easier to verify the semantic correctness of filter compositions since
filters are modular extensions;
![Page 24: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/24.jpg)
24
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
CF’s: Should be easier to verify
• Controlling the order of aspect superimpositions using partial, advice-based priority specifications
• Resource-model based aspect-interference analysis approach
• Graph- based aspect-interference analysis approach
advice1 Pointcutdesignator1
adviceN PointcutdesignatorN
Correctcomposition
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Controlling the order of aspect superimpositions using partial, advice-based
priority specifications
Node’05
![Page 25: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/25.jpg)
25
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Resource-model based aspect-interference analysis approach
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Serialization-based aspect-interference approach (continued)From the set of filters (from multiple filtermodules), per resource a sequence
of operations is compiled, e.g.:
NB: not for all combinations of accept & reject a corresponding message exists: this is filtered out
These sequences are matched with conflict patterns (defined per resource), e.g. “R*WR
So: RR and RRRW don’t match, but RWR does match conflict
filters
RWRRRW W
![Page 26: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/26.jpg)
26
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Serialization-based aspect-interference approach (continued)
The process:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Graph-based aspect-interference analysis
![Page 27: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/27.jpg)
27
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Graph-based aspect-interface analysis approach
Detect aspect-interference on a shared joinpoints without:
– (formally) specifying the aspect– (formally) specifying the base program– specifying the base language semantics
“Only analyse the aspects, not the base program.”
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Graph-based aspect-interface approach (continued)
generate abstract syntax graphsubstitute filter-types with filter-actionsconstruct control flow graphcreate runtime state (method call)
simulation: generate state space – Fixed production system for operational semantics
verification: analyse state space
![Page 28: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/28.jpg)
28
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Graph-based aspect-interface approach (continued)
Two kinds of non-determinism:
– Assignment of unknown runtime values (conditions)
– Selection of filter module order
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Conclusions about the semantic interference detection
Prioritization of compositions is sometimes necessary. Prioritization must be based on partial specifications. This is integrated in filters.
Well-defined interfaces of concerns (filters) and/or concerns with well-defined semantics (domain specific concerns) make it easier to analyze & verify semantic interference among concerns (for example by using graph-based verification)
In case of large state spaces, concerns can be abstracted as semantic signatures (related to a resource model) and be analyzed based on the references to the resource-model.
![Page 29: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/29.jpg)
29
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Our future work
Define larger set of filters (filter library) identified from practical needs
Work further on semantic composition also for not shared joinpoints
Composition patterns
Higher-level compositions
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
SoftwareModule 1
Formatter
(a)
SoftwareModule 1
SoftwareModule 2
Selector
(c)
Strategy
SoftwareModule 1
SoftwareModule 2
OR composer
(b)
(d)
SoftwareModule 1
coordinator Coordinationprotocol
SoftwareModule 2
coordinator
Larger set of explicit composition operator
![Page 30: Interface-based aspect-oriented programming in Compose ...leavens/FOAL/slides-2009/Aksit.pdf · semantic point-cuts and aspect-interface detection possibilities Mehmet Aksit Chair](https://reader033.fdocuments.in/reader033/viewer/2022060209/5f0455277e708231d40d7521/html5/thumbnails/30.jpg)
30
Interface-based aspect-oriented programming in Compose*:
© Mehmet Aksit Interface-based programming in Compose*: Foundations of Aspect-Oriented Languages 2009
Conclusions
Non-invasive AOP has some advantages; language independence, semantic verification, etc.
Non-invasive AOP must be supported with a high-level compositional language.
Invasive AOP is probably good for applications like run-time verification kind of applications, but the ideal level of detail of the joinpoints is difficult to determine. Open joinpoint models can be the answer!