Fully abstract semantics of additive aspects by translation

We study the denotational semantics of an aspect calculus by compositional translation to a functional language with higher-order store and ML-style references. The calculus is designed to construct only "additive" aspects i.e. those that do not elide the execution of the base computation. Such an aspect calculus is sufficiently expressive to encode before (), after () and around () advice which calls proceed () exactly once. We prove that our translation is adequate i.e. it reflects observational equivalence. Further if a standard object-oriented view of lable is adopted, the translation is fully abstract i.e. it preserves and reflects observational equivalence. A pleasing consequence is that full abstraction of the target-language semantics is thereby inherited by the source-language semantics. This yields the first fully abstract game model for a functional language of additive aspects.

[1]  Carolyn L. Talcott,et al.  1 Equivalence in Functional Languages with E ectsIan , 2007 .

[2]  Radha Jagadeesan,et al.  µABC: A Minimal Aspect Calculus , 2004, CONCUR.

[3]  Dominic J. D. Hughes Games and definability for system F , 1997, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[4]  C.-H.L. Ong,et al.  Correspondence between operational and denotational semantics: the full abstraction problem for PCF , 1995, LICS 1995.

[5]  Jon G. Riecke,et al.  Fully abstract translations between functional languages , 1991, POPL '91.

[6]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[7]  James Laird A fully abstract game semantics of local exceptions , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[8]  Andrzej S. Murawski,et al.  Applying Game Semantics to Compositional Software Modeling and Verification , 2004, TACAS.

[9]  John C. Reynolds,et al.  The essence of ALGOL , 1997 .

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

[11]  Samson Abramsky,et al.  A fully abstract game semantics for general references , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

[12]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[13]  Dan R. Ghica,et al.  The regular-language semantics of second-order idealized ALGOL , 2003, Theor. Comput. Sci..

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

[15]  Jonathan Aldrich,et al.  Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming , 2004 .

[16]  James H. Andrews,et al.  Process-Algebraic Foundations of Aspect-Oriented Programming , 2001, Reflection.

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

[18]  I. Stark,et al.  Operational reasoning for functions with local state , 1999 .

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

[20]  A. Edalat,et al.  Advances in theory and formal methods of computing : proceedings of the third Imperial College workshop, Christ Church, Oxford, 1-3 April 1996 , 1996 .

[21]  Guy McCusker,et al.  Full Abstraction By Translation , 1996 .