Developing High-Integrity Software in C and Ada 1999-01-0265
Software developed for high-integrity systems was often required to be written in Ada. In some industries, this requirement has recently been lifted and C is either being used or strongly considered for some next- generation safety-critical development efforts.
The overall objective of this paper is to show that the safety of any language can be enhanced by adhering to time-honored software engineering principles, such as strong typing and structured design. The one distinction is in what a language, such as Ada, supports and what a language, such as C, allows.
A number of safe design and code examples are provided showing that if a language allows programs to adhere to certain principles then it is possible to satisfy, or at least address safety-critical guidelines as defined by aerospace industrial standards.
This paper also introduces emerging European safe language subsets such as SPARK Ada and MISRA C. Emphasis will be placed on the more universally shared and understood restrictions, not the obscure language aspects.