Some features either are being implemented as optional ones or are still under
discussion:
• Lightweight version of exceptions and exception handling.
• Dynamic memory allocation and automatic memory management for dynamically allocated program entities.
• Object orientation with single inheritance.
The point of concern related to the features mentioned above is that the full
implementation of them can slowdown programs significantly.
Support of the notion of exception allows flexible reactions on various kinds of
unexpected program behavior, which is quite useful in case of systems that communicate with an outer world actively.
However, typical semantics of exception handling assumes significant overhead
that might be not acceptable. Similar reasons apply to automatic memory management (garbage collecting).
Proper object orientation helps developers to clearly structure their programs and
implement them in a modern way.
However, from a safety-critical point of view, this feature is not essential and can
also be omitted if the additional overhead of an object-oriented language is not
acceptable.
The ERRIC compiler translates the source code into semantically equivalent
assembly code (see Sects. 11.3 and 11.4), that is, to be further processed by the
assembler getting the executable binary code.
The resulting binary code can be loaded to memory and executed directly on the
ERRIC processor. Another option is to pass the binary to the ERRIC Simulator (see
Chap. 20) to execute it in a model environment.
The ERRIC compiler now (Spring 2019) is being developed by S. Malyutkin
and E. Zouev (Innopolis University, Russia).
11.5 Application Level: The COMPOSITA Language
The specification of the original COMPOSITA language together with rationale and
discussion about its key concepts and features is given in [10]. The language
supports a rich and flexible program structure that allows building complex
application software. Following [11] and [4], the language model can be characterized as follows:
• Hierarchical composition;
Each component can be hierarchically composed, by containing an arbitrary
assembly of component instances. The contained sub-components are fully
encapsulated by the surrounding super-component.
11.4 System Level: The ERRIC Language
173
discussion:
• Lightweight version of exceptions and exception handling.
• Dynamic memory allocation and automatic memory management for dynamically allocated program entities.
• Object orientation with single inheritance.
The point of concern related to the features mentioned above is that the full
implementation of them can slowdown programs significantly.
Support of the notion of exception allows flexible reactions on various kinds of
unexpected program behavior, which is quite useful in case of systems that communicate with an outer world actively.
However, typical semantics of exception handling assumes significant overhead
that might be not acceptable. Similar reasons apply to automatic memory management (garbage collecting).
Proper object orientation helps developers to clearly structure their programs and
implement them in a modern way.
However, from a safety-critical point of view, this feature is not essential and can
also be omitted if the additional overhead of an object-oriented language is not
acceptable.
The ERRIC compiler translates the source code into semantically equivalent
assembly code (see Sects. 11.3 and 11.4), that is, to be further processed by the
assembler getting the executable binary code.
The resulting binary code can be loaded to memory and executed directly on the
ERRIC processor. Another option is to pass the binary to the ERRIC Simulator (see
Chap. 20) to execute it in a model environment.
The ERRIC compiler now (Spring 2019) is being developed by S. Malyutkin
and E. Zouev (Innopolis University, Russia).
11.5 Application Level: The COMPOSITA Language
The specification of the original COMPOSITA language together with rationale and
discussion about its key concepts and features is given in [10]. The language
supports a rich and flexible program structure that allows building complex
application software. Following [11] and [4], the language model can be characterized as follows:
• Hierarchical composition;
Each component can be hierarchically composed, by containing an arbitrary
assembly of component instances. The contained sub-components are fully
encapsulated by the surrounding super-component.
11.4 System Level: The ERRIC Language
173
