smithzv wrote:I have been looking at Pascal's stuff, namely AspectL, but I cannot seem to translate the documentation on AspectL's features into examples I see elsewhere for aspect oriented programming. For instance, on the Wikipedia page on aspect oriented programming, there is an example of writing a program that handles bank transactions where the crosscutting concerns would be things like determining if the user has access to this account, logging transactions, and updating information in a database.
That's not quite correct, there is actually no such example on the Wikipedia page, only a motivating example without a solution given in aspect-oriented style.
smithzv wrote:Has anyone seen/can anyone provide examples like this implemented in AspectL?
Consider AspectL deprecated. It was an interesting experiment to see how well AOP concepts translate to a language that already has powerful metaprogramming capabilities. However, it is actually not worth the trouble. The example on the Wikipedia could better be solved by a combination of a couple of (first-class) functions and a few macros.
Especially the notion of pointcuts doesn't translate well to Lisp, because of the so-called "fragile pointcut problem", which hits you much more severely than in a language like Java. Macros and MOP are better tools for dealing with what pointcuts are used for in, say, AspectJ.
Consider ContextL instead. That's a distillation of our experiences with AOP and AspectL, fits a language like Lisp much better and has means to deal with crosscutting concerns that are much more appropriate for a dynamic language.