Languages Features Calendar CSV Lists Blog About Sponsor Add Language
GitHub icon



AspectJ is a pl created in 2001.

#345on PLDB 21Years Old 661Users
17Books 37Papers 671Repos

Try now: Riju

AspectJ is an aspect-oriented programming (AOP) extension created at PARC for the Java programming language. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse. AspectJ has become a widely used de facto standard for AOP by emphasizing simplicity and usability for end users. Read more on Wikipedia...

Example from Riju:
public class Main { public static void main(String[] args) { System.out.println("Hello, world!"); } }
Example from hello-world:
System.out.println("Hello World");
Example from Linguist:
package com.blogspot.miguelinlas3.aspectj.cache; import java.util.Map; import java.util.WeakHashMap; import org.aspectj.lang.JoinPoint; import com.blogspot.miguelinlas3.aspectj.cache.marker.Cachable; /** * This simple aspect simulates the behaviour of a very simple cache * * @author migue * */ public aspect CacheAspect { public pointcut cache(Cachable cachable): execution(@Cachable * * (..)) && @annotation(cachable); Object around(Cachable cachable): cache(cachable){ String evaluatedKey = this.evaluateKey(cachable.scriptKey(), thisJoinPoint); if(cache.containsKey(evaluatedKey)){ System.out.println("Cache hit for key " + evaluatedKey); return this.cache.get(evaluatedKey); } System.out.println("Cache miss for key " + evaluatedKey); Object value = proceed(cachable); cache.put(evaluatedKey, value); return value; } protected String evaluateKey(String key, JoinPoint joinPoint) { // TODO add some smart staff to allow simple scripting in @Cachable annotation return key; } protected Map<String, Object> cache = new WeakHashMap<String, Object>(); }
Example from Wikipedia:
pointcut set() : execution(* set*(..) ) && this(Point);

Language features

Feature Supported Example Token
Binary Literals
// 0[bB][01][01_]*[lL]?
// 0|[1-9][0-9_]*[lL]?
// ([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?
// 0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?
// 0[0-7_]+[lL]?
"Hello world"
MultiLine Comments
/* A comment
/* */
Print() Debugging System.out.println
// A comment
Line Comments
// A comment
Semantic Indentation ϴ

Books about AspectJ on goodreads

title author year reviews ratings rating
Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools Adrian Colyer 2004 0 8 3.25
Aspectj in Action: Practical Aspect-Oriented Programming Ramnivas Laddad 2003 2 34 3.76
Aspect-Oriented Programming with Aspectj Ivan Kiselev 2002 0 3 3.00
Mastering Aspectj: Aspect-Oriented Programming in Java Joseph D. Gradecki 2003 1 5 3.20
Aspect-Oriented Programming with Aspectj Ivan Kiselev 2002 0 0 0.0
Java Programming Language Family: Godiva, Scala, Processing, Aspectj, Groovy, Javafx Script, Einstein, J Sharp, Judoscript, Jasmin, Beanshell Books LLC 2011 0 0 0.0
Logging and Simulation using Aspect Oriented Software: AOP and AspectJ Mutum Meetei 0 0 0.0

Books about AspectJ from ISBNdb

title authors year publisher
AspectJ Cookbook: Aspect Oriented Solutions to Real-World Problems Miles, Russ 2005 O'Reilly Media
AspectJ in Action: Enterprise AOP with Spring Applications Ramnivas Laddad 2009 Manning Publications
Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools Colyer, Adrian 2004 Addison-Wesley Professional
Aspectj in Action: Practical Aspect-Oriented Programming Laddad, Ramnivas 2003 Manning Publications
AspectJ Cookbook Russ Miles 20041220 O'Reilly Media, Inc.
AspectJ Cookbook Russ Miles 20041220 O'Reilly Media, Inc.
AspectJ in Action Raminvas Laddad 20090831 Simon & Schuster
Aspect-oriented Programming With Aspectj Ivan Kiselev 2003 Sams
Aspect-oriented programming using AspectJ Ivan Kiselev Sams
Aspect-Oriented Programming with Eclipse AspectJ Development Tools Pankaj Kumar 2018-05-31 LAP LAMBERT Academic Publishing

Publications about AspectJ from Semantic Scholar

title authors year citations influentialCitations
abc: an extensible AspectJ compiler Pavel Avgustinov and Aske Simon Christensen and L. Hendren and Sascha Kuzins and Jennifer Lhoták and O. Lhoták and O. Moor and D. Sereni and Ganesh Sittampalam and J. Tibble 2005 235 16
A UML-based aspect-oriented design notation for AspectJ D. Stein and Stefan Hanenberg and R. Unland 2002 223 12
Racer: effective race detection using aspectj E. Bodden and K. Havelund 2008 98 8
Aspect-oriented programming with AspectJ A. Colyer and Andy Clement 2005 86 5
From multi-modal scenarios to code: compiling LSCs into aspectJ S. Maoz and D. Harel 2006 81 2
Pipa: A Behavioral Interface Specification Language for AspectJ Jianjun Zhao and M. Rinard 2003 76 5
Generating AspectJ Programs with Meta-AspectJ David Zook and Shan Shan Huang and Y. Smaragdakis 2004 67 8
Using AspectJ to build a software product line for mobile devices Trevor J. Young 2005 64 9
Bridging Java and AspectJ through explicit join points Kevin J. Hoffman and P. Eugster 2007 54 5
Declarative, formal, and extensible syntax definition for aspectJ Martin Bravenboer and É. Tanter and E. Visser 2006 49 5
Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs P. Anbalagan and Tao Xie 2008 41 7
Semantics of static pointcuts in aspectJ Pavel Avgustinov and Elnar Hajiyev and Neil Ongkingco and O. Moor and D. Sereni and J. Tibble and M. Verbaere 2007 40 6
Aspects and polymorphism in AspectJ Erik Ernst and D. Lorenz 2003 36 1
SCoPE: an AspectJ compiler for supporting user-defined analysis-based pointcuts Tomoyuki Aotani and Hidehiko Masuhara 2007 36 3
Applyinq AspectJ to J2EE application development Nicholas Lesiecki 2006 26 0
APTE: automated pointcut testing for AspectJ programs P. Anbalagan and Tao Xie 2006 26 2
A Compiler for Multimodal Scenarios: Transforming LSCs into AspectJ S. Maoz and D. Harel and A. Kleinbort 2011 19 2
An empirical study on the impact of AspectJ on software evolvability Adam Przybyłek 2018 17 1
Security crosscutting concerns and AspectJ Dima Alhadidi and Nadia Belblidia and M. Debbabi 2006 16 0
Region pointcut for AspectJ Shumpei Akai and S. Chiba and Muga Nishizawa 2009 13 1
AspectJ Paradigm Model: A Basis for Multi-paradigm Design for AspectJ V. Vranic 2001 12 1
Formalizing AspectJ Weaving for Static Pointcuts Nadia Belblidia and M. Debbabi 2006 10 2
Case study: a distributed concurrent system with AspectJ R. Raje and Ming Zhong and Tong-yang Wang 2001 9 0
Complex code querying and navigation for AspectJ J. Pfeiffer and Andonis Sardos and J. Gurd 2005 8 0
Traits Programming with AspectJ S. Denier 2005 8 1
Teste de programas orientados a aspectos: uma abordagem estrutural para AspectJ O. Lemos 2005 7 2
An Advice for Advice Composition in AspectJ Fuminobu Takeyama and S. Chiba 2010 7 1
2D and 3D visualization of AspectJ programs S. Bentrad and D. Meslati 2011 6 0
abc the aspectBench compiler for aspectJ a workbench for aspect-oriented programming language and compilers research Chris Allan and Pavel Avgustinov and Aske Simon Christensen and Bruno Dufour and C. Goard and L. Hendren and Sascha Kuzins and Jennifer Lhoták and O. Lhoták and O. Moor and D. Sereni and Ganesh Sittampalam and J. Tibble and Clark Verbrugge 2005 6 0
On ASPECTJ and Composition Filters: A Mapping of Concepts D. Meslati 2009 5 0
Accessing and Evaluating AspectJ based Mutation Testing Tools Mayank Singh and Shailendra Mishra and R. Mall 2011 5 0
A Case Study of Development of a Java Bytecode Analyzer Framework Using AspectJ Susumu Yamazaki and Michihiro Matsumoto and T. Nakanishi and T. Kitasuka and Akira Fukuda 2005 3 0
Overcoming comprehension barriers in the AspectJ programming language Venera Arnaoudova and L. Eshkevari and Elaheh Safari-Sharifabadi and Constantinos A. Constantinides 2008 3 1
Automated testing of pointcuts in AspectJ programs P. Anbalagan 2006 2 0
Comparative Analysis of Java and AspectJ on the Basis of Various Metrics Inderjit Singh Dhanoa and Er. Dalwinder Singh Salaria and H. S. Johal 2011 2 0
New AspectJ Pointcuts for Integer Overflow and Underflow Detection Dima Alhadidi and M. Debbabi and P. Bhattacharya 2008 1 0
Tackling the Challenges of Integrating 3rd Party Software Using AspectJ U. Hohenstein and M. Jäger 2011 1 0
diagram.html · aspectj.html · seed7.html

View source

PLDB - Build the next great programming language · v2022 · Day 33 · Docs · Build · Acknowledgements · Traffic Today · Traffic Trends · Mirrors · GitHub ·