• Interface connections;
An arbitrary network of components can be built by connecting the required
interfaces of components to corresponding offered interfaces of other components. A component only constructs the network of its sub-components.
• Communication-based interactions;
Components can interact via interfaces by message communications. An individual communication channel is maintained between a component, which
offers an interface, and each component, which uses the interface. The language
establishes an agent-based model with self-active objects (components), and
protocol-structured communications.
The language semantics supports powerful means and constructs for organizing
concurrent execution.
The version of COMPOSITA for ERRIC has some extensions and modifications
that serve for better use of the processor’s architecture specifics.
11.6 Summary
In this Chapter, we discussed the system tools for creating software for ERRICbased computers. The major architectural idea is to design a composition of three
programming languages supporting the development of various kinds of software—
from system low-level code up to complex applications.
Together, these languages (and corresponding system tools like compilers)
provide support for the three main GAFT processes (P1 testing and checking, P2,
recovery preparation, P3 recovery). We resume here what features we introduced
and to which step of GAFT they belong.
Each language is introduced by discussing its major concepts and features; a few
examples illustrating some key aspects of their design are provided.
An obvious next step of the entire project evolution would be a prototype
implementation of the compilers. Hopefully, they can be checked as a
proof-of-concept even before a real ERRIC processor appears: the ERRIC
instruction code software simulator can run ERRIC programs in the interpretation
mode. Refer to Chap. 20 for more detailed information about the simulator.
References
1. Wirth N (2008) Oberon-07 language report. Technical report, ETH Zurich
2. Schagaev I (2008) Reliability of malfunction tolerance. In: International multi-conference on
computer science and information technology, IMCSIT 2008, pp 733–737
3. Castano V, Schagaev I (2015) Resilient computer system design. Springer, New York. ISBN
978-3-319-15069-7
4. https://cordis.europa.eu/project/rcn/72840/reporting/en
174
11 Programming Languages for Safety-Critical Systems
An arbitrary network of components can be built by connecting the required
interfaces of components to corresponding offered interfaces of other components. A component only constructs the network of its sub-components.
• Communication-based interactions;
Components can interact via interfaces by message communications. An individual communication channel is maintained between a component, which
offers an interface, and each component, which uses the interface. The language
establishes an agent-based model with self-active objects (components), and
protocol-structured communications.
The language semantics supports powerful means and constructs for organizing
concurrent execution.
The version of COMPOSITA for ERRIC has some extensions and modifications
that serve for better use of the processor’s architecture specifics.
11.6 Summary
In this Chapter, we discussed the system tools for creating software for ERRICbased computers. The major architectural idea is to design a composition of three
programming languages supporting the development of various kinds of software—
from system low-level code up to complex applications.
Together, these languages (and corresponding system tools like compilers)
provide support for the three main GAFT processes (P1 testing and checking, P2,
recovery preparation, P3 recovery). We resume here what features we introduced
and to which step of GAFT they belong.
Each language is introduced by discussing its major concepts and features; a few
examples illustrating some key aspects of their design are provided.
An obvious next step of the entire project evolution would be a prototype
implementation of the compilers. Hopefully, they can be checked as a
proof-of-concept even before a real ERRIC processor appears: the ERRIC
instruction code software simulator can run ERRIC programs in the interpretation
mode. Refer to Chap. 20 for more detailed information about the simulator.
References
1. Wirth N (2008) Oberon-07 language report. Technical report, ETH Zurich
2. Schagaev I (2008) Reliability of malfunction tolerance. In: International multi-conference on
computer science and information technology, IMCSIT 2008, pp 733–737
3. Castano V, Schagaev I (2015) Resilient computer system design. Springer, New York. ISBN
978-3-319-15069-7
4. https://cordis.europa.eu/project/rcn/72840/reporting/en
174
11 Programming Languages for Safety-Critical Systems
