An Overview of CaesarJ

CaesarJ is an aspect-oriented language which unifies aspects, classes and packages in a single powerful construct that helps to solve a set of different problems of both aspect-oriented and component-oriented programming. The paper gradually introduces the concepts of the language and illustrates them by showing how they can be used for noninvasive component refinement and integration, as well as for development of well modularized flexible aspects. In this way we demonstrate that the combination of aspect-oriented constructs for joinpoint interception with advanced modularization techniques like virtual classes and propagating mixin composition can open the path towards large-scale aspect components.

[1]  Ole Lehrmann Madsen,et al.  Virtual classes: a powerful mechanism in object-oriented programming , 1989, OOPSLA 1989.

[2]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[3]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[4]  Urs Hölzle,et al.  Integrating Independently-Developed Components in Object-Oriented Languages , 1993, ECOOP.

[5]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[6]  Clemens A. Szyperski Independently Extensible Systems - Software Engineering Potential and Challenges , 1996 .

[7]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

[8]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[9]  David A. Moon,et al.  A monotonic superclass linearization for Dylan , 1996, OOPSLA '96.

[10]  James O. Coplien,et al.  Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications , 1996, OOPSLA 1996.

[11]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[12]  Mira Mezini,et al.  Adaptive plug-and-play components for evolutionary software development , 1998, OOPSLA '98.

[13]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .

[14]  Rachid Guerraoui,et al.  ECOOP’ 99 — Object-Oriented Programming , 1999, Lecture Notes in Computer Science.

[15]  Erik Ernst,et al.  Propagating Class and Method Combination , 1999, ECOOP.

[16]  Stanley M. Sutton,et al.  Multi-Dimensional Separation of Concerns , 1999 .

[17]  Erik Ernst gbeta - a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance , 2000 .

[18]  Oscar M. Nierstrasz,et al.  ECOOP’ 93 — Object-Oriented Programming , 2000, Lecture Notes in Computer Science.

[19]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[20]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[21]  Erik Ernst,et al.  Family Polymorphism , 2001, ECOOP.

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

[23]  Laurence Duchien,et al.  JAC: A Flexible Solution for Aspect-Oriented Programming in Java , 2001, Reflection.

[24]  Satoshi Matsuoka,et al.  Metalevel Architectures and Separation of Crosscutting Concerns , 2001, Lecture Notes in Computer Science.

[25]  Mehmet Aksit Software Architectures and Component Technology: The State of the Art in Research and Practice , 2001 .

[26]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

[27]  Matthias Zenger,et al.  Evolving Software with Extensible Modules , 2002 .

[28]  Rémi Douence,et al.  A model and a tool for Event-based Aspect-Oriented Programming (EAOP) , 2002 .

[29]  Robert Hirschfeld,et al.  AspectS - Aspect-Oriented Programming with Squeak , 2002, NetObjectDays.

[30]  Klaus Ostermann,et al.  Dynamically Composable Collaborations with Delegation Layers , 2002, ECOOP.

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

[32]  Stephan Herrmann,et al.  Object Teams: Improving Modularity for Crosscutting Collaborations , 2002, NetObjectDays.

[33]  Boris Magnusson,et al.  ECOOP 2002 — Object-Oriented Programming , 2002, Lecture Notes in Computer Science.

[34]  Mira Mezini,et al.  Integrating independent components with on-demand remodularization , 2002, OOPSLA '02.

[35]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[36]  Mira Mezini,et al.  Component Integration with Pluggable Composite Adapters , 2002 .

[37]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[38]  Stefan Hanenberg,et al.  Parametric introductions , 2003, AOSD '03.

[39]  Luca Cardelli,et al.  ECOOP 2003 – Object-Oriented Programming , 2003, Lecture Notes in Computer Science.

[40]  Rainer Unland,et al.  Objects, Components, Architectures, Services, and Applications for a Networked World , 2003, Lecture Notes in Computer Science.

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

[42]  Todd Millstein,et al.  Relaxed MultiJava: balancing extensibility and modular typechecking , 2003, OOPSLA 2003.

[43]  Erik Ernst,et al.  Higher-Order Hierarchies , 2003, ECOOP.

[44]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[45]  Karl J. Lieberherr,et al.  Aspectual Collaborations: Combining Modules and Aspects , 2003, Comput. J..

[46]  Jan Bosch,et al.  Software Reuse: Methods, Techniques, and Tools , 2004, Lecture Notes in Computer Science.

[47]  Awais Rashid,et al.  Framed Aspects: Supporting Variability and Configurability for AOP , 2004, ICSR.

[48]  Stefan Hanenberg,et al.  Evolvable Pattern Implementations Need Generic Aspects , 2004, RAM-SE.

[49]  S. Chiba,et al.  Remote pointcut: a language construct for distributed AOP , 2004, AOSD '04.

[50]  Nathanael Schärli,et al.  Traits: tools and methodology , 2004, Proceedings. 26th International Conference on Software Engineering.

[51]  J. Aldrich Open Modules : Modular Reasoning in Aspect-Oriented Programming , 2004 .

[52]  Ralf Lämmel,et al.  Semantics-directed implementation of method-call interception , 2004, IEE Proc. Softw..

[53]  Michael Haupt,et al.  Virtual machine support for dynamic join points , 2004, AOSD '04.

[54]  Andrew C. Myers,et al.  Scalable extensibility via nested inheritance , 2004, OOPSLA.

[55]  Mira Mezini,et al.  Expressive Pointcuts for Increased Modularity , 2005, ECOOP.

[56]  Andrew P. Black ECOOP 2005 - Object-Oriented Programming, 19th European Conference, Glasgow, UK, July 25-29, 2005, Proceedings , 2005, ECOOP.

[57]  Mira Mezini,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[58]  H. Rajan,et al.  Classpects: unifying aspect- and object-oriented language design , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[59]  W. Cook,et al.  A Virtual Class Calculus , 2005 .

[60]  Michael Eichberg,et al.  An execution layer for aspect-oriented programming languages , 2005, VEE '05.

[61]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[62]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.