[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Aspect Oriented Programming in context of lightweight languages.
There a few "threads" of AOP research in FP languages, that I am aware of:
- At Northeastern, Doug Orleans is doing work in this area, for example in
"Incremental Programming with Extensible Decisions"
(http://www.ccs.neu.edu/home/dougo/papers/aosd02/).
- Somewhat related to this, Mitchell Wand and Gregor Kiczales have
written a paper "A Semantics for Advice and Dynamic Join Points in
Aspect-Oriented Programming"
(ftp://ftp.ccs.neu.edu/pub/people/wand/papers/wkd02.ps and
ftp://ftp.ccs.neu.edu/pub/people/wand/papers/w-k-d-01.ps)
- And there is a new paper for this week's AOSD conference, by Shriram
Krishnamurthi and David Tucker, "Pointcuts and Advice in Higher-Order
Languages" [Alas, this one is not online yet.]
Two, somewhat different "kinds of AOP":
- "Aspect Weaving as Component Knitting: Separating Concerns with Knit" by
the "Knit" team at Utah (Matthew Flatt and others):
http://www.cs.utah.edu/flux/papers/knit-icse01-wasc-base.html
This paper descibes using "units" (as in the "unit" mechanism of PLT
Scheme)
in a C-extension to do a sort of "AOP" to provide "cross-cutting" features
in an OS kernel.
- Simon Peyton Jones, et al. wrote a paper on "Aspect-oriented Compilers",
describing another style of AOP--this time in Haskell:
http://research.microsoft.com/Users/simonpj/Papers/aspects.htm
Personally, I have used a technique like that in the Flatt, et al. paper
to extend an existing Scheme-based XML parser--SSAX--to support a
different "cross cutting concern": recording source location information,
for all the different parsed XML terms. This was done with units in
PLT Scheme.
Jim Bender
In a message dated 3/18/03 11:17:16 PM, matt@maintree.com writes:
> I've been reading on Aspect Oriented Programming for a while, and I was
>
>having a hard time getting my head around it. On the surface, it seems
>
>useful to me, but it seems everyone loves the "adding logging to an
>application example", and other problems solved by it aren't just busting
>
>out of my head.
> In a Lightweight/Little Languages context, I was curious both for examples
>
>of (specific) problems it solves, and whether it applies to something
>besides a mostly procedural/OO language like Java. For instance, how does
>
>AOP relate to Lisp? Does Lisp already do it? How?