Language choice for safety critical applications
The programming languages currently most popular among software engineers for writing safety critical applications are C and, more recently, C++. The Ada language has been designed with software safety in mind. Although Ada is not perfect concerning safety critical programming, it is far better than C or C++. There have been definitions of subsets of C for safety critical applications, such as MISRA C. Similarly, there are several attempts at defining a safe subset of C++, including MISRA C++ and the Joint Strike Fighter (JSF) Avionics C++ coding standards. The most commonly used safety critical subset of Ada is SPARK. SPARK provides a statically provable fully deterministic subset of Ada. The C and C++ safety critical subsets attempt to achieve a level of safety similar to the full Ada language. That attempt generally fails. This paper concentrates on a comparing the C++ language, including portions of the JSF C++ standard and those features inherited from C, with the full Ada language.