RT-Java
The Programming Environments Laboratory (PELAB) at the Department of Computer and Information Science, Linköping University, is working on a programming environment for real-time Java. Currently most work is put into a Java-to-assembler compiler with back-ends for multiple platforms. The goal is a complete system for modeling, design, development, debugging, and maintenance.
Members
- Prof. Peter Fritzson, Ph.D., Project leader
- Tobias Ritzau, Phil. Lic., Real-time garbage collection
- Peter Aronsson, M. Sc., Medium Grained Scheduling
- Andrzej Bednarski, M. Sc., Optimizations for DSP processors
- Jesper Andersson, Phil. Lic., Dynamic versioning and configuration
- Marcus Comstedt, M.Sc., Web integration
- Jens Gustavsson, M.Sc., Dynamic code update
Past Members
- Pär Danielsson, Master student, Dynamic version control
- Henric Karlsson, Master student, RT-Java compiler
- Torbjörn Hultén, Master student, Dynamic version control
- Anders Roos, Master student, RT-Java compiler
The RT-Java compiler
A more detailed description can be found as chapter 5 of Tobias Ritzau's licentiate thesis. The current version of the compiler is developed within the JOSES project in cooperation with the University of Delft, the University of Karlsruhe, the University of Saarlandes, Ericsson, Philips and ACE. The current status (as in Mars 2000) is described in JoC - the JOSES compiler.
The Java-to-assembler compiler is built using several modules.
The tea and jd compilers are written in RML, which is a language based on natural semantics. RML is developed at PELAB.
- tea
- A Java to Java-byte-code compiler.
- jd
- A Java-byte-code to BAR (see below) compiler.
- barc
- A BAR compiler. Which compiles Java to assembler
The barc compiler is constructed using a compiler tool called CoSy. A CoSy compiler consists of modules. There are four kinds of modules: front-ends, optimizers, lowerers, and back-ends. Lowerers are modules which converts the internal representation into a simpler form to make back-ends simpler, e.g. to convert switch statements into if statements. All modules use a common intermediate form called CCMIR. We have back-ends for Sparc, Pentium, and SHARC. Back-ends for Trimedia is under development at PELAB, and a back-end for Java-byte-code is planned within a co-project.
Related Projects
RT-Java is used within the following projects.
- JOSES
- The project deals with problems of optimizing heterogeneous paralell real-time Java systems. The project is supported by the EU.
- Distributed Control and Versioning using Web-technology
- The project goals are to control and maintain real-time Java systems using Web-technology. The project is supported by the NUTEK.
- JDRUMS
- The Java Dynamic Run-time Update Management System (JDRUMS) projects is a joint project with Växjö University. The project deals with the problems of dynamic version control.
Publications
Andersson J., Comstedt M. and Ritzau T. "Run-time support for dynamic Java architectures" . The ECOOP'98 Workshop on Object-Oriented Software Architectures. Brussels, July 1998. Available as Technical report 13/98 University of Karlskrona/Ronneby.
Ritzau, T. "Real-Time Reference Counting for RT-Java" . Licentiate Thesis. In Linköping Studies in Science and Technology, No. 748, March 1999.
J. Andersson. "Towards Reactive Software Architectures" . Licentiate Thesis. In Linköping Studies in Science and Technology, No. 769, May 1999. Ritzau, T. "Real-Time Reference Counting - Automatic memory management with short and predictable interruptions" . SNART'99. Linköping 1999.
Ritzau T. et al. "Dynamic Deployment of Java Applications" . CCSSE'99, Norrköping, 1999.
Ritzau T. "Real-Time Reference Counting" . Java for Embedded Systems, London, May 2000.
Ritzau T. et al. "JoC - The Joses Compiler" . Java for Embedded Systems, London. May 2000.
Ritzau T. and Andersson J. "Dynamic Deployment of Java Applications" . Java for Embedded Systems, London, May 2000.
Andersson J. och Ritzau T. "Dynamic Code Update in JDrums" . The ICSE'00 Workshop on Software Engineering for Wearable and Pervasive Computing, Limerick 2000.
Future Work
Current work is aimed to develop the compiler and to handle dynamic updates of classes. Future work include:
- Estimation of worst case execution time.
- Adapting to the QNX operating system.
- Static garbage collection.
Java is a trademark of Sun Microsystems.