Erik Hilsdale

Learn More
AspectJTM is a simple and practical aspect-oriented extension to JavaTM. With just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns. In AspectJ’s dynamic join point model, join points are well-defined points in the execution of the program; pointcuts are collections of join points; advice are(More)
Many software developers are attracted to the idea of AOP, but unsure about how to begin using the technology. They recognize the concept of crosscutting concerns, and know that they have had problems with the implementation of such concerns in the past. But there are many questions about how to adopt AOP into the development process. Common questions(More)
This paper describes the implementation of advice weaving in AspectJ. The AspectJ language picks out dynamic join points in a program's execution with pointcuts and uses advice to change the behavior at those join points. The core task of AspectJ's advice weaver is to statically transform a program so that at runtime it will behave according to the AspeetJ(More)
public aspect RemoteExceptionLogging { abstract pointcut logPoints();pointcut logPoints(); after() throwing (RemoteException e): logPoints() { log.println(“Remote call failed in: ” + thisJoinPoint.toString() + “(” + e + “).”); } } public aspect MyRMILogging extends RemoteExceptionLogging { pointcut logPoints(): receptions(* RegistryServer.*.*(..)) ||(More)
Most of the existing literature about monadic programming focuses on theory but does not address issues of software engineering. Using monadic parsing as a running example, we demonstrate monadic programs written in a typical style, recognize how they violate abstraction boundaries, and recover clean abstraction crossings through monadic reflection. Once(More)
Implementing any big software system is a complex task. One of the major reasons for this is that, there one would like to modularize but for which the implementation would be spread out. Such concerns are more commonly known as Aspects. For example security aspect has to be taken care irrespective of the fact, whatever business logic is being implemented.(More)
Complex systems usually contain design units that are logically related to several objects in the system. Some examples include: tracing, propagation of interrupts, multi-object protocols, security enforcement etc. This crosscutting between those design units and the objects is a natural phenomenon. But, using traditional implementation techniques, the(More)
  • 1