A Comparison of Ada and Real-Time Java for Safety-Critical Applications

The presentation slides for this Ada-Europe paper are online (the paper itself is proabably behind a paywall). The authors are Ben Brosgol from AdaCore and Andy Wellings from the University of York (UK) , really the guys to read if you are interested in these topics.

Some of the issues alluded to in the slides were discussed here in the past, either in general discussions about Ada or in discussions about the specific issues (RTSJ, async transfer of control etc.)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Java is pure OO?

I noticed in one of the slides they refer to Java as being 'pure OO'. I thought that pure OO languages are those that treat all values as objects.

Aside from that, I admire ADA, but as it is said, the language is just too complex/big for my taste.

Another point that seems interesting to me is why OOP is an advantage in the context of real-time systems. It seems that FP is much better in this context.

Using Java for critical

Using Java for critical SW... Well, it certainly incurs some alteration to the language and the runtime, but maybe the hardware could be adapted as well. Current mainstream CPUs are natural targets for C and ADA ( although the assessment of the determinism and WCET on modern CPUs is a very complex task ), but some enhancements could be made for better handling of more dynamic languages ( whatever dynamic actually means ) especially on time critical applications ( And are Java chips better suited for critical real time Java ? )

What about alternatives (read: Cyclone, Erlang)?

I was only able to read the slides, so I'm not sure what content might be missing. However, they did leave me with several questions that are largely off-topic to the original presentation goal.

I must admit that Java would not have been my first thought as an alternative to Ada for safety-critical systems. We've had discussions here recently about interesting projects like Cyclone and Erlang, both of which are more strongly focused on solving the types of problems people have encountered building large safety-critical systems.

I'm especially curious what researchers and engineers in the safety-critical world think of concepts like Joe Armstrong's Let it Fail design approach for safety criticality.

Furthermore, since Cyclone shares so many of C's characteristics, it seems that some kind of survey of the performance of Cyclone in the life-cycle of a safety-critical development project would be really interesting. At the moment, there doesn't seem to be an such paper available.