Translation of Java to Real-Time Java Using Aspects

Morgan Deters, Nicholas Leidenfrost, and Ron K. Cytron

In Proceedings of the International Workshop on Aspect-Oriented Programming and Separation of Concerns, 24 August 2001, Lancaster, United Kingdom.

Revision:  Final version for the extended abstract

The Real-Time Specification for Java [1] (RTSJ) introduces the concept of nested-scope memory areas to Java. This design allows a programmer to allocate objects in areas that are ignored by the garbage collector. Unfortunately, the specification of scoped memory areas currently involves the introduction of unwieldy, application-specific constructs that can ruin the reusability of the affected software.

We propose the use of aspects [2], in particular the AspectJ [3] system, to transform a Java program into a scope-aware RTSJ program automatically. Moreover, we have developed analysis that automatically determines storage scopes, in response to information provided by an instrumented form of the application at hand. That instrumentation is also accomplished using aspects. Here we present our ongoing work in using aspects to detect and specify memory scopes automatically in Java programs.

[1]  Bollella, Gosling, Brosgol, Dibble, Furr, Hardin, and Turnbull. The Real-Time Specification for Java. Addison-Wesley, 2000.

[2]  Gregor Kiczales. Aspect-Oriented Programming. In Proceedings of the 11th European Conference on Object-Oriented Programming, June 1997.

[3]  The AspectJ Organization. Aspect-Oriented Programming for Java. www.aspectj.org, 2001.

Paper available in [ Gzipped PostScript ] [ PDF ]