Applying translucid contracts for modular reasoning about aspect and object oriented events

The Implicit Invocation (II) architectural style improves modularity and is promoted by aspect-oriented (AO) languages and design patterns like Observer. However, it makes modular reasoning difficult, especially when reasoning about control effects of the advised code (subject). Our language Ptolemy, which was inspired by II languages, uses translucid contracts for modular reasoning about the control effects; however, this reasoning relies on Ptolemy's event model, which has explicit event announcement and declared event types. In this paper we investigate how to apply translucid contracts to reasoning about events in other AO languages and even non-AO languages like C#

[1]  David Walker,et al.  Harmless advice , 2006, POPL '06.

[2]  Patrick Th. Eugster,et al.  Bridging Java and AspectJ through explicit join points , 2007, PPPJ.

[3]  Gary T. Leavens,et al.  Translucid Contracts for Aspect-oriented Interfaces , 2009 .

[4]  Bruno C. d. S. Oliveira,et al.  EffectiveAdvice: disciplined advice with explicit effects , 2010, AOSD.

[5]  Gary T. Leavens,et al.  Modular verification of higher-order methods with mandatory calls specified by model programs , 2007, OOPSLA.

[6]  Radha Jagadeesan,et al.  A Calculus of Untyped Aspect-Oriented Programs , 2003, ECOOP.

[7]  Gregor Kiczales,et al.  A semantics for advice and dynamic join points in aspect-oriented programming , 2001, TOPL.

[8]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[9]  B. Hilken,et al.  Towards a proof theory of rewriting: the simply typed 2l-calculus , 1996 .

[10]  Jianjun Zhao,et al.  Pipa: A Behavioral Interface Specification Language for AspectJ , 2003, FASE.

[11]  Manuel Fähndrich,et al.  Embedded contract languages , 2010, SAC '10.

[12]  Gary T. Leavens,et al.  MAO: Ownership and Effects for More Effective Reasoning About Aspects , 2007, ECOOP.

[13]  David Walker,et al.  A theory of aspects , 2003, ICFP '03.

[14]  R. A. G. Seely Modelling Computations: A 2-Categorical Framework , 1987, LICS.

[15]  David H. Lorenz,et al.  Extending Design by Contract for Aspect-Oriented Programming , 2005, ArXiv.

[16]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[17]  Yuanyuan Song,et al.  Modular aspect-oriented design with XPIs , 2010, ACM Trans. Softw. Eng. Methodol..

[18]  J. Lambek,et al.  Introduction to higher order categorical logic , 1986 .

[19]  Joachim Lambek,et al.  Cartesian Closed Categories and Typed Lambda- calculi , 1985, Combinators and Functional Programming Languages.

[20]  David H. Lorenz,et al.  Cona: aspects for contracts and contracts for aspects , 2004, OOPSLA '04.

[21]  Éric Tanter Execution levels for aspect-oriented programming , 2010, AOSD.

[22]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[23]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[24]  Roberto Erick Lopez-Herrejon,et al.  A disciplined approach to aspect composition , 2006, PEPM '06.

[25]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[26]  Oege de Moor,et al.  Adding open modules to AspectJ , 2006, AOSD.

[27]  Jonathan Aldrich,et al.  Open Modules: Modular Reasoning About Advice , 2005, ECOOP.

[28]  Sven Apel,et al.  Types and modularity for implicit invocation with implicit announcement , 2010, TSEM.

[29]  Philip J. Scott,et al.  Some aspects of categories in computer science , 2000 .

[30]  Gary T. Leavens,et al.  Ptolemy: A Language with Quantified, Typed Events , 2008, ECOOP.