Technical Report Number
Advances in middleware, operating systems, and popular, general-purpose languages have brought the ideal of reasonably-bound execution time closer to developers who need such assurances for real-time and embedded systems applications. Extensions to the Java libraries and virtual machine have been proposed in a real-time Java standard, which provides for speciﬁcation of release times, execution costs, and deadlines for a restricted class of threads. To use such features, the programmer is required to use unwieldy code constructs to create region-like areas of storage, associate them with execution scopes, and allocate objects from them. Further, the developer must ensure that they do not violate strict inter-region reference rules. Unfortunately, it is difﬁcult to determine manually how to map object instantiations to execution scopes. Moreover, if ordinary Java code is modiﬁed to effect instantiations in scopes, the resulting code is difﬁcult to read, maintain, and reuse. We present a dynamic approach to determining proper placement of objects within scope-bounded regions, and we employ a procedure that utilizes aspect-oriented programming to instrument the original program, realizing the program’s scoped memory concerns in a modular fashion. Using this approach, Java programs can be converted into region-aware Java programs automatically.
Deters, Morgan G., "Dynamic Assignment of Scoped Memory Regions in the Translation of Java to Real-Time Java" Report Number: WUCSE-2003-27 (2003). All Computer Science and Engineering Research.