An Untyped Calculus of Aspect- Oriented Programs Radha Jagadeesan Alan Jeffrey James Riely DEPAUL UNIVERSITY, CHICAGO.

Slides:



Advertisements
Similar presentations
Programming Languages and Paradigms
Advertisements

Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Aspect Oriented Programming - AspectJ Radhika Rajput.
Cs784(TK)1 Semantics of Procedures and Scopes. Kinds of Scope Static or Lexical scope –determined by structure of program –Scheme, C++, Java, and many.
1 Continuation Join Points Yusuke Endoh, Hidehiko Masuhara, Akinori Yonezawa (University of Tokyo)
A Type System for Well-Founded Recursion Derek Dreyer Carnegie Mellon University POPL 2004 Venice, Italy.
Overview of AspectJ Aspect Oriented Software Development Seminar Technion presented by Oren Mishali.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
A Calculus of Untyped Aspect-Oriented Programs Paper by Radha Jagadeesan Alan Jeffrey James Riely Presented by Shay Cohen.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
A Formal Model of Modularity in Aspect-Oriented Programming Jonathan Aldrich : Objects and Aspects Carnegie Mellon University.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming (AOP) in.NET Brent Krueger 12/20/13.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Generative Programming. Automated Assembly Lines.
Aspect-Oriented Modeling of Access Control in Web Applications Gefei Zhang Joint work with Hubert Baumeister, Nora Koch and Alexander Knapp UML-BASED WEB.
AOSD1 Aspect-Oriented Software Design Karl Lieberherr Theo Skotiniotis.
CSC3315 (Spring 2008)1 CSC 3315 Subprograms Hamid Harroud School of Science and Engineering, Akhawayn University
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
CCC: An Aspect-Oriented Intermediate Language on.Net Platform Yingfei Xiong and Feng Wan University of Electronic Science and Technology of China, China.
Virtual Support for Dynamic Join Points C. Bockisch, M. Haupt, M. Mezini, K. Ostermann Presented by Itai Sharon
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
C Functions Three major differences between C and Java functions: –Functions are stand-alone entities, not part of objects they can be defined in a file.
Aspect-Oriented Action Semantics Descriptions Luis Menezes University of Pernambuco
Slicing AspectJ Woven Code Luca Cavallaro Mattia Monga Antonio Castaldo D'Ursi Davide Balzarotti Politecnico di Milano.
AspectJ – AOP for Java Tom Janofsky. Instructor at Penn State Abington Consultant with Chariot Solutions JUG Member.
Topics for exam in AOSD Basic concepts: tangling, scattering, joinpoint, advice, cross-cutting, weaving AspectJ: syntax, pointcut notations, around, proceed,
Aspect Oriented Development Alex Beatty.  Purpose  Cross-cutting Concerns  Join Points, Pointcuts, and Advices  Weaving  Invasive vs. Non-Invasive.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
Aspect Oriented Programming Adlux Consultancy Services Pvt Ltd
Kansas City Java User’s Group Jason W. Bedell July 12, 2006
Comparison of Different AOP Approaches Presented by: Xiaojing Wang.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
Introduction to Yan Cui Aspect Oriented Programming by
UBC software modularity group 1/14/02 UCSD1 Discussion with Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what.
Aspect-Oriented Software Development (AOSD)
AO Mechanisms in Demeter1 Discussion with Gregor Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what exists. An.
1 Aspectual Caml an Aspect-Oriented Functional Language Hideaki Tatsuzawa Hidehiko Masuhara Akinori Yonezawa University of Tokyo.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Software Engineering Lecture 7
Chengyu Sun California State University, Los Angeles
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Discussion with Gregor Kiczales at UBC
Aspect-Oriented Programming
Aspect-Oriented Design and Patterns
Chengyu Sun California State University, Los Angeles
JAsCo an Aspect-Oriented approach tailored for
Structuring Adaptive Applications using AspectJ and AOM
CS520 Web Programming Spring – Aspect Oriented Programming
Leveraging ColdSpring To Make Better Applications
Aspect Oriented Software Design
Aspect Oriented Programming
Presentation transcript:

An Untyped Calculus of Aspect- Oriented Programs Radha Jagadeesan Alan Jeffrey James Riely DEPAUL UNIVERSITY, CHICAGO

Aspect Oriented Programming AOSD. Systematic methodology to address cross-cutting concerns A standard example: logging AOP. Language support to ``localize’’ cross cutting code This talk. About AOP languages

Specification via translation Weaving: describe operational semantics of a AOP language via compilation to the underlying paradigm. Aspect + Java ! Java Aspect + Scheme ! Scheme Aspect + ML ! ML Aspect + C ! C

AOP languages and OO languages: Folklore Execution in OO languages is an instance of execution in AOP languages Translation from OO programs P to AOP program P asp P 1 ! P 2, P 1 asp ! P 2 asp

AOP languages and OO languages: Folklore  Execution in OO languages is an instance of execution in AOP languages  Aspects interfere with OO principles

Aspects interfere with OO programming D1, D2 are distinguishable.

Aspects as first class entities?  Source semantics is non-trivial.  Aspects + OO: redundancy  Aspects interfere with OO principles

Rest of the talk Overview of results A sketch of the technical development

A calculus of AO programs Identify a core set of orthogonal primitives Only AROUND advice No method bodies Only call/execution pointcuts Direct description of the operational semantics of aspect based programs

So what? Dynamic arrival of new advice permitted.

Specification of weaving No reductions are lost No new reductions

Limitations Limited vocabulary of pointcuts. Only call/execution join points Reflection, cflow not included Global specification of advice order

Rest of this talk: A sketch of the main ideas An overview of call vs. execution The aspect calculus Weaving

An Advised Method call o:C u:D u.foo() a proceed() o.foo(u)

An Advised Method call o:C u:D u.foo() a proceed() o.foo(u)

Call advice Executed in the controlling context of the caller

An Advised Method call o:C u:D u.foo() a proceed() o.foo(u)

Execution advice Executed in the controlling context of the callee

Rest of this talk An overview of call vs.. execution The aspect calculus Weaving

The Aspect Calculus Class declarations Pointcuts Advice

The Aspect Calculus: Classes Class = list of method names Methods have no code

The Aspect Calculus: Pointcuts

The Aspect Calculus: Advice Given fixed global ordering on advice names

Reduction rules: context

Reduction rules: fetching advice Keep track of controlling object p{…} Call advice determined by static type. Execution advice determined by dynamic type

Reduction rules: call advice Controlling context of caller p Substitutions for this, target proceed, parameters

Reduction rules: execution advice Controlling context of callee o Substitutions for this, target proceed, parameters

Encoding Class Based Language 1 Create an exec advice for each method body

Encoding Class Based Language 2 proceed cbl_d_m cbl_c_m Name cbl_d_m precedes name cbl_c_m in ordering on advice names

Rest of this talk An overview of call vs. execution The aspect calculus Weaving

Programs that dynamically load advice affecting existing classes cannot be woven statically. For static advice, weaving algorithm is (by now) standard. Novelty is specification of weaving.

Weaving: Basic idea View as a kind of macro-expansion. To weave Weave recursively and associate result to the body of method m

Weaving Alas. This doesn’t necessarily terminate. However, postpone macro-expansion to runtime by freezing inside method bodies. Formalized in paper.

A subtlety in correctness proof Weaving of intermediate configurations requires knowledge of controlling object

Rest of this talk An overview of call vs. execution The aspect calculus Weaving Summary

This talk: A calculus of AOP programs Identify a core set of orthogonal primitives Direct description of the execution of programs in an aspect language.

Moving along Scale: Larger variety of pointcuts. Accurate treatment of advice order. Source level typing