Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/646158.680006guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

An Overview of AspectJ

Published: 18 June 2001 Publication History
  • Get Citation Alerts
  • Abstract

    AspectJ is a simple and practical aspect-oriented extension to Java . With just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns. In AspectJ's dynamic join point model, join points are well-defined points in the execution of the program; pointcuts are collections of join points; advice are special method-like constructs that can be attached to pointcuts; and aspects are modular units of crosscutting implementation, comprising pointcuts, advice, and ordinary Java member declarations. AspectJ code is compiled into standard Java bytecode. Simple extensions to existing Java development environments make it possible to browse the crosscutting structure of aspects in the same kind of way as one browses the inheritance structure of classes. Several examples show that AspectJ is powerful, and that programs written using it are easy to understand.

    References

    [1]
    Proceedings of the Conference on Domain-Specific Languages (DSL). USENIX,Santa Barbara, California, USA (1997).
    [2]
    Bobrow, D.G., et al.: CommonLoops: Merging Lisp and Object-Oriented Programming. In: Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, Portland, Oregon (1986) 17-29.
    [3]
    Cannon, H.: Flavors: A non-hierarchical approach to object-oriented programming. Symbolics Inc.(1982).
    [4]
    Coady, Y., G. Kiczales, and M. Feeley: Exploring an Aspect-Oriented Approach to Operating System Code. In: Position paper for the Advanced Separation of Concerns Workshop at the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, Minneapolis, Minnesota, USA (2000).
    [5]
    DeVolder, K.: Aspect-Oriented Logic Meta Programming. In: Meta-Level Architectures and Reflection, Reflection'99. Springer, Saint-Malo, France (1999) 250-272.
    [6]
    Filman, R.E. and D.P. Friedman: Aspect-Oriented Programming is Quantification and Obliviousness. In: Position paper for the Advanced Separation of Concerns Workshop at the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, Minneapolis, Minnesota, USA (2000).
    [7]
    Friendly, L.: Design of Javadoc. In: The Design of Distributed Hyperlinked Programming Documentation (IWHD). Springer-Verlag, Montpellier, France (1995).
    [8]
    Goldberg, A.: Smalltalk-80: The Interactive Programming environment. Addisson-Wesley, Reading MA (1984).
    [9]
    Goldberg, A. and D. Robson: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, (1983).
    [10]
    Green, T.R.G. and M. Petre: Usability analysis of visual programming environments: a 'cognitive dimensions' approach. Journal of Visual Languages and Computing. 7,2. (1996) 131-174.
    [11]
    Griswold, D.: The Java HotSpot Virtual Machine Architecture. Sun Microsystems, Inc.(1998).
    [12]
    Ichisugi, Y., S. Matsuoka, and A. Yonezawa: RbCl: A reflective object-oriented concurrent language without a run-time kernel. In: International Workshop on New Models for Software Architecture (IMSA): Reflection and Meta-Level Architecture. Tama City, Tokyo (1992) 24-35.
    [13]
    Irwin, J., et al.: Aspect-Oriented Programming of Sparse Matrix Code. In: Proceedings of the International Symposium on Computing in Object-Oriented Parallel Environments (ISCOPE). Springer, Marina del Rey, CA, USA (1997) 249-256.
    [14]
    Kiczales, G., et al.: Aspect-Oriented Programming. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Springer-Verlag, Finland (1997).
    [15]
    Kiczales, G. and L. Rodriguez: Efficient Method Dispatch in PCL. In: LISP and Functional Programming. ACM Press, Nice, France (1990) 99-105.
    [16]
    Lewis, J., et al.: Implicit Parameters: Dynamic Scoping with Static Types. In: Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. Boston, Massachusetts (2000) 108-118.
    [17]
    Lieberherr, K.J.: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston (1996).
    [18]
    Lopes, C.V. and G. Kiczales: D: A Language Framework for Distributed Programming. Technical Report SPL97-010, P9710047. Xerox Palo Alto Research Center,Palo Alto, CA (1997).
    [19]
    Maes, P.: Concepts and Experiments in Computational Reflection. In: Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, Orlando, Florida (1987) 147-155.
    [20]
    Masuhara, H., S. Matsuoka, and A. Yonezawa: Designing an OO reflective language for massively-parallel processors. In: Position paper for the workshop on Object-Oriented Reflection and Metalevel Architectures at the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). Washington, DC (1993).
    [21]
    Matsuoka, S., T. Watanabe, and A. Yonezawa: Hybrid group reflective architecture for object-oriented concurrent reflective programming. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Springer, Geneva, Switzerland (1991) 231-250.
    [22]
    McAffer, J.: The CodA MOP. In: Position paper for the workshop on Object-Oriented Reflection and Metalevel Architectures at the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA),. Washington, DC (1993).
    [23]
    Mendhekar, A., G. Kiczales, and J. Lamping: RG: A Case-Study for Aspect-Oriented Programming. Technical Report SPL97-009, P9710044. Xerox Palo Alto Research Center, Palo Alto, CA (1997).
    [24]
    Mezini, M. and K.J. Lieberherr: Adaptive Plug-and-Play Components for Evolutionary Software Development. In: Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, Vancouver, British Columbia, Canada (1998) 97-116.
    [25]
    Moon, D.A.: Object-Oriented Programming with Flavors. In: Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, Portland, Oregon (1986) 1-8.
    [26]
    Okamura, H., Y. Ishikawa, and M. Tokoro: Metalevel Decomposition in AL-1/D. In: International Symposium on Object Technologies for Advanced Software. Springer Verlag, (1993) 110-127.
    [27]
    Ossher, H., et al.: Subject-Oriented Composition Rules. In: Proceedings of the Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, Austin, Texas (1995) 235-250.
    [28]
    Ossher, H. and P.L. Tarr: Hyper/J: multi-dimensional separation of concerns for Java. In: Proceedings of the International Conference on Software Engineering (ICSE). ACM, Limerick, Ireland (2000) 734-737.
    [29]
    Parnas, D.L.: On the Criteria To Be Used in Decomposing Systems Into Modules. Communications of the ACM. 15,12. (1972) 1053-1058.
    [30]
    Parnas, D.L.: Software Engineering or Methods for the Multi-Person Construction of Multi-Version Programs. Lecture Notes in Computer Science. Programming Methodology. (1974).
    [31]
    Shneiderman, B.: Direct Manipulation: A step beyond Programming languages, In: Human-Computer Interaction: A Multidisciplinary Approach, R.M. Baecker and W.A.S. Buxton, Editors. Morgan Kaufmann Publishers, Inc.: Los Altos, CA (1983) 461-467.
    [32]
    Smith, B.C.: Reflection and Semantics in a Procedural Language, PhD Thesis. M.I.T(1982).
    [33]
    Smith, B.C.: Reflection and Semantics in LISP. In: Proceedings of the Symposium on Principles of Programming Languages (POPL). ACM, (1984) 23-35.
    [34]
    Steele, G.L.: Common Lisp the Language. 2nd ed. Digital Press, (1990) 1029.
    [35]
    Stroustrup, B.: The C++ Programming Language. 3rd ed. Addison-Wesley, (1997).
    [36]
    Tarr, P.L., et al.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: Proceedings of the International Conference on Software Engineering (ICSE). ACM, Los Angeles, CA (1999) 107-119.
    [37]
    Walker, R. and G. Murphy: Implicit Context: Easing Software Evolution and Reuse. In: Proceedings of the Conference on Foundations of Software Engineering (FSE). ACM, San Diego, California (2000).
    [38]
    Watanabe, T. and A. Yonezawa: Reflection in an object-oriented concurrent language. In: Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). ACM, San Diego, CA (1988) 306-315.

    Cited By

    View all
    • (2024)Flexible Non-intrusive Dynamic Instrumentation for WebAssemblyProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651338(398-415)Online publication date: 27-Apr-2024
    • (2023)Taming Internet of Things Application Development with the IoTvar MiddlewareACM Transactions on Internet Technology10.1145/358601023:2(1-21)Online publication date: 19-May-2023
    • (2022)Stateful Serverless Computing with CrucialACM Transactions on Software Engineering and Methodology10.1145/349038631:3(1-38)Online publication date: 7-Mar-2022
    • Show More Cited By

    Index Terms

    1. An Overview of AspectJ
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Guide Proceedings
      ECOOP '01: Proceedings of the 15th European Conference on Object-Oriented Programming
      June 2001
      428 pages
      ISBN:3540422064

      Publisher

      Springer-Verlag

      Berlin, Heidelberg

      Publication History

      Published: 18 June 2001

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Flexible Non-intrusive Dynamic Instrumentation for WebAssemblyProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651338(398-415)Online publication date: 27-Apr-2024
      • (2023)Taming Internet of Things Application Development with the IoTvar MiddlewareACM Transactions on Internet Technology10.1145/358601023:2(1-21)Online publication date: 19-May-2023
      • (2022)Stateful Serverless Computing with CrucialACM Transactions on Software Engineering and Methodology10.1145/349038631:3(1-38)Online publication date: 7-Mar-2022
      • (2021)Monilogging for executable domain-specific languagesProceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3486608.3486906(2-15)Online publication date: 17-Oct-2021
      • (2021)A proposal for organizing source code variability in the git version control systemProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471141(82-88)Online publication date: 6-Sep-2021
      • (2020)FCMInternational Journal of Computer Applications in Technology10.1504/ijcat.2020.10391062:1(71-90)Online publication date: 1-Jan-2020
      • (2020)Zone-based Layer ActivationProceedings of the 12th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3422584.3422764(1-10)Online publication date: 21-Jul-2020
      • (2020)Pivot tracingCommunications of the ACM10.1145/337893363:3(94-102)Online publication date: 24-Feb-2020
      • (2020)On the Monitoring of Decentralized SpecificationsACM Transactions on Software Engineering and Methodology10.1145/335518129:1(1-57)Online publication date: 30-Jan-2020
      • (2020)Midair: An Intermediate Representation for Multi-purpose Program AnalysisComputational Science and Its Applications – ICCSA 202010.1007/978-3-030-58817-5_40(544-559)Online publication date: 1-Jul-2020
      • Show More Cited By

      View Options

      View options

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media