Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-announce] Aspect-oriented programming reloaded with AspectJML

Hi AspectJ users,

I'm leading the development of aspect-oriented programming reloaded project, which includes the AspectJML programming language and its Online IDE [try it now!]. AspectJML is [now] a general-purpose aspect-oriented extension to Java. It supports programming in Java, JML, AspectJ, AspectJML, or a mixin of all that. My SBLP 2017 talk slides can be found as an attached file.

First of all, we're not distracting to what AOP/AspectJ is all all. It's a winner at the time it came in... we just are opening a new space of language research in a way that is more natural to Java programmers. AspectJML does use the AspectJ/ajc compiler to enable crosscutting behavior.

With AspectJML, programmers feel like they are programming in plain Java, but AspectJML also allows them to modularize crosscutting concerns without having any meta-level shift or without having any extended syntax shift for advanced modularity. It's quite similar to @AspectJ but differ in several ways: 
(1) does not have a class playing the role of an aspect; there is no notion of aspect in AspectJML;
(2) named method advice can be placed anywhere, e.g. interfaces and follows Java semantics of static and instance methods and visibility; that is, for example, a private advice method only affects the type it was declared;
(3) hierarchical structure can be used to enable modular crosscutting in AspectJML;
(4) Open class mechanism is supported in .ajml files, which work as slices. For example, for a class say Point.java, we can have Point.ajml, which is a slice of the type Point. When compiled, we get only one Point.class;
(5) Instance and Class/Static level advising
(6) ...

*** AspectJML is a non-classical notion of AOP that follows the classical notion of modularity and modular reasoning. AspectJ is a classical notion of AOP that does not. But in AspectJML we can mix all of these notions; that is, you can move back or forward between these AOP notions.

For the key ideas, please refer to the aop reloaded paper. A paper with an overview of AspectJML and other supplemental material is under the way.

Try AspectJML online now at: http://aspectjml.cin.ufpe.br/

The fun has not gone! It just began!

P.S. If you have any question, we are happy to help, please send a message to: aspectjml@xxxxxxxxxxx

--
...............................................................................................................................
Henrique Rebelo
http://www.cin.ufpe.br/~hemr
Centro de Informática
Universidade Federal de Pernambuco , Brazil

Virus-free. www.avast.com

Attachment: rebelo-sblp-2017.pptx
Description: MS-Powerpoint 2007 presentation


Back to the top