For many, Java is the antithesis of a high integrity programming language. Its combination of object-oriented programming features, its automatic garbage collection, and its poor support for real-time multi-threading are all seen as particular impediments. The Real-Time Specification for Java has introduced many new features that help in the real-time domain. However, the expressive power of these features means that very complex programming models can be created, necessitating complexity in the supporting real-time virtual machine. Consequently, Java, with the real-time extensions as they stand, seems too complex for confident use in high integrity systems. This paper presents a Java profile for the development of software-intensive high integrity real-time systems. This restricted programming model removes language features with high overheads and complex semantics, on which it is hard to perform timing and functional analyses. The profile fits within the J2ME framework and is consistent with well-known guidelines for high integrity software development, such as those defined by the U.S. Nuclear Regulatory Commission.

BibTex Entry

@inproceedings{Kwon2002a,
 author = {J. Kwon and A. J. Wellings and S. King},
 booktitle = {Proceedings of the Joint ACM Java Grande - ISCOPE 2002 Conference},
 category = {high integrity systems, real-time Java, language profile, subset},
 pages = {131-140},
 title = {Ravenscar-Java: A High Integrity Profile for Real-Time Java},
 year = {2002}
}