Chapter 11
Programming Languages
for Safety-Critical Systems
Eugene Zouev
Abstract In previous chapters, we introduced the three main processes required to
implement generalized algorithm of fault tolerance (GAFT), namely—testing and
checking, second recovery preparation, and third and finally recovery and recovery
monitoring. We described what every of these steps incorporates, gave possible
solutions, and analyzed them. In the Chap. 7, we introduced syndrome for testing
and checking; here we introduce programming language models for the two other
mentioned processes. What we now want to do is to synthesize the introduced
concepts into system software tools—programming languages and their compilers.
We will discuss possible project solutions related to the overall architecture of
software tools and introduce the major components of the architecture.
11.1 Oberon-07 as the Single Development Tool
Initially, the Oberon-07 programming language [1] was considered as the basis for
the programming language extensions, and embedded reliable reduced instruction
computer (ERRIC) [2, 3] serves as the target hardware platform. The strong type
safety of Oberon together with the simplicity of the language seemed to be quite
suitable for safety-critical systems.
Oberon-07 was developed during the ONBASS project [4] and successfully used
for the implementation of the MINOS [5] operating system. Its goal of simplicity of
the language together with strong type safety and built-in safety features such as
automatic array range checks are in line with the requirements of a safety-critical
system.
However, during the implementation in a slightly more complex, more flexible
setup than ONBASS, it became more and more obvious that the programming
model of Oberon-07 does not provide all required functionalities.
First of all, MINOS is heavily based on a plugin concept, which means that all
required functionalities such as drivers or application components can be plugged
© Springer Nature Switzerland AG 2020
I. Schagaev et al., Software Design for Resilient Computer Systems,
https://doi.org/10.1007/978-3-030-21244-5_11
165
Précédent

- 178/315

Suivant