[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?