Type relaxed weaving

Statically typed aspect-oriented programming languages restrict application of around advice only to the join points that have conforming types. Though the restriction guarantees type safety, it can prohibit application of advice that is useful, yet does not cause runtime type errors. To this problem, we present a novel weaving mechanism, called the type relaxed weaving, that allows such advice applications while preserving type safety. We formalized the mechanism, and implemented as an AspectJ compatible compiler, called RelaxAJ.

[1]  Xavier Leroy,et al.  Java bytecode verification : algorithms and formalizations Xavier Leroy INRIA Rocquencourt and Trusted Logic , 2003 .

[2]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[3]  Gary T. Leavens,et al.  MiniMAO: An imperative core language for studying aspect-oriented reasoning , 2006, Sci. Comput. Program..

[4]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 1999, OOPSLA '99.

[5]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[6]  Martin Erwig,et al.  Type-safe update programming , 2003 .

[7]  Uwe Hohenstein,et al.  How to Convince Industry of AOP , 2007 .

[8]  Atsushi Igarashi,et al.  Union types for object-oriented programming , 2006, SAC.

[9]  David Walker,et al.  AspectML: A polymorphic aspect-oriented functional programming language , 2008, TOPL.

[10]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[11]  Hidehiko Masuhara,et al.  StrongRelaxAJ: integrating adaptability of RelaxAJ and expressiveness of StrongAspectJ , 2010 .

[12]  Ralf Lämmel,et al.  A semantical approach to method-call interception , 2002, AOSD '02.

[13]  Bruno De Fraine,et al.  StrongAspectJ: flexible and safe pointcut/advice bindings , 2008, AOSD.

[14]  Jørgen Lindskov Knudsen Name Collision in Multiple Classification Hierarchies , 1988, ECOOP.

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

[16]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[17]  Mitchell Wand A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming , 2001, SAIG.

[18]  Akinori Yonezawa,et al.  Aspectual Caml: an aspect-oriented functional language , 2005, ICFP '05.

[19]  Gary T. Leavens,et al.  MiniMAO1: Investigating the Semantics of Proceed , 2005 .

[20]  Wolfgang Schröder-Preikschat,et al.  AspectC++: an aspect-oriented extension to the C++ programming language , 2002 .

[21]  Guy L. Steele,et al.  The Java Language Specification , 1996 .