Protection from Bad Advice

Report ID: TR-696-04
Author: Walker, David / Dantas, Daniel S.
Date: 2004-04-00
Pages: 10
Download Formats: |PDF|
Abstract:

Aspect-oriented programming languages such as AspectJ provide a new way to separate out and consolidate code for debugging, profiling, distribution and other tasks that would otherwise become tangled with the main-line computation. Without aspects, this code can be difficult to understand and maintain. Unfortunately, while aspects purport to provide a new form of modularity, they also defeat the purpose of existing information hiding and modularity mechanisms.

We have developed a new aspect-oriented programming language, AspectML, that allows programmers to control information hiding and access to the internals of a module through a simple static type system. Using our mechanisms, programmers can prevent aspects from interfering with local invariants or reading information that should be kept private to a module. Consequently, AspectML is the first aspect-oriented language that interoperates safely and effectively with rich module systems.