Scoped Types and Aspects for Real-Time Java

Real-time systems are notoriously difficult to design and implement, and, as many real-time problems are safety-critical, their solutions must be reliable as well as efficient and correct. While higher-level programming models (such as the Real-Time Specification for Java) permit real-time programmers to use language features that most programmers take for granted (objects, type checking, dynamic dispatch, and memory safety) the compromises required for real-time execution, especially concerning memory allocation, can create as many problems as they solve. This paper presents Scoped Types and Aspects for Real-Time Systems (STARS) a novel programming model for real-time systems. Scoped Types give programmers a clear model of their programs' memory use, and, being statically checkable, prevent the run-time memory errors that bedevil models such as RTSJ. Our Aspects build on Scoped Types guarantees so that Real-Time concerns can be completely separated from applications' base code. Adopting the integrated Scoped Types and Aspects approach can significantly improve both the quality and performance of a real-time Java systems, resulting in simpler systems that are reliable, efficient, and correct.

[1]  Robert Cartwright,et al.  Soft typing , 1991, PLDI '91.

[2]  John Hogg Islands: aliasing protection in object-oriented languages , 1991, OOPSLA 1991.

[3]  Gilad Bracha,et al.  Strongtalk: typechecking Smalltalk in a production environment , 1993, OOPSLA '93.

[4]  Jan Vitek,et al.  Flexible Alias Protection , 1998, ECOOP.

[5]  James Noble,et al.  Ownership types for flexible alias protection , 1998, OOPSLA '98.

[6]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[7]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[8]  Martin C. Rinard,et al.  An Implementation of Scoped Memory for Real-Time Java , 2001, EMSOFT.

[9]  David C. Sharp,et al.  Real-time distributed object computing: ready for mission-critical embedded system applications , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[10]  Andy J. Wellings,et al.  Ravenscar‐Java: a high‐integrity profile for real‐time Java , 2002, JGI '02.

[11]  James Cheney,et al.  Region-based memory management in cyclone , 2002, PLDI '02.

[12]  James Noble,et al.  Saving the world from bad beans: deployment-time confinement checking , 2003, OOPSLA 2003.

[13]  Martin C. Rinard,et al.  Ownership types for safe region-based memory management in real-time Java , 2003, PLDI '03.

[14]  Jan Vitek,et al.  Real-time Java scoped memory: design patterns and semantics , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[15]  Andy J. Wellings,et al.  Memory Management Based on Method Invocation in RTSJ , 2004, OTM Workshops.

[16]  Jan Vitek,et al.  Scoped types for real-time Java , 2004, 25th IEEE International Real-Time Systems Symposium.

[17]  Jan Vitek,et al.  A Real-time Java Virtual Machine for Avionics - An Experience Report , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[18]  Shane Markstrum,et al.  A framework for implementing pluggable type systems , 2006, OOPSLA '06.

[19]  Jens Palsberg,et al.  Type-based confinement , 2006, J. Funct. Program..