[aosd-discuss] Any AOP implementations using VM-hooks?
Pascal Costanza
costanza at iai.uni-bonn.de
Tue Jan 27 08:06:54 EST 2004
Eric Bodden wrote:
> Hi altogether.
>
> I was just wondering if there are any approaches out there that implement
> AOP based solutions by implementing hooks in a virtual machine for "firing"
> advice on joinpoints.
Since you haven't restricted your question to Java or the like, let me
add the following hints:
- Run-time metaobject protocols (MOP) provide an excellent ground to
start from. For example, take a look at Robert Hirschfeld's AspectS
which is based on Smalltalk and its MOP. Another excellent MOP is the
CLOS MOP (Common Lisp Object System). With such a facility, you can
implement your own aspect-oriented extension during a long weekend or
so. I have implemented such a system, which I haven't published yet though.
Of course, this all requires an understanding of how MOPs work which
takes some upfront investment. But it's not too hard IMHO.
- Apart from that, it might also be a good idea to look at what the
open-source community has to offer. For example, Parrot is a unified
virtual machine that is currently in the works for Perl, Python and
other languages. It's probably easier to get aspect-oriented extensions
accepted for such projects than for the rather closed Java and .NET
world. If you are interested in getting industry acceptance in those
worlds, it's probably not a good idea to extend their virtual machines.
It's too hard to catch up with their progress, at least not when you
don't have a large team to back this, and industry partners are not
likely to base their software on experimental research projects.
Load-time transformation/load-time metaobject protocols are the best you
can get in this light.
Of course, this all depends on what target audience you have in mind
and/or you are in.
Just my 0.02€.
Pascal
--
Pascal Costanza University of Bonn
mailto:costanza at web.de Institute of Computer Science III
http://www.pascalcostanza.de Römerstr. 164, D-53117 Bonn (Germany)
More information about the discuss
mailing list