@@ -44,14 +44,40 @@ Scope is the complete SW platform and the development parts of the process.
4444Approach
4545++++++++
4646
47- Design and programming language
48- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49-
50- For specifying **Detailed Design ** (like for the Architecture) a mixture of UML diagrams and natural language is used.
51- Additionally for the Detailed Design linking to code, Doxygen style comments are used.
52- This is described in :need: `doc_concept__imp_concept ` and guided by :need: `gd_temp__detailed_design `
53-
54- As required in :need: `stkh_req__dev_experience__prog_languages `, S-CORE allows the use of two programming languages:
47+ Selection of design and programming language
48+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49+
50+ For the selection of design and programming language a stakeholder requirement is defined in :need: `stkh_req__dev_experience__prog_languages `,
51+ which is based on experience. The criteria for selection are based on the following aspects:
52+
53+ * Unambiguous definition of syntax and semantics
54+ * Suitability for specifying and managing for safety related requirements and design
55+ * Support of modularity, abstraction and encapsulation
56+ * Support of the use of structured constructs
57+
58+ The selected languages form the stakeholder requirements were analysed in the following table:
59+
60+ .. list-table :: Selection of design and programming language
61+ :header-rows: 1
62+ :widths: 33,33,33
63+
64+ * - Criteria
65+ - C++
66+ - Rust
67+ * - Unambiguous definition of syntax and semantics
68+ - Standardized, strict syntax, strong tooling
69+ - Strict syntax, single compiler, strong tooling
70+ * - Suitability for safety related programming
71+ - Certified tools, MISRA, static analysis, traceability
72+ - Compiler-enforced safety, strong type system, documentation, emerging safety support, certified tools
73+ * - Support of modularity, abstraction and encapsulation
74+ - Classes, templates, modules, access control
75+ - Modules, crates, traits, strong visibility control
76+ * - Support of the use of structured constructs
77+ - Full support for structured programming
78+ - Full support, enforced by language design
79+
80+ S-CORE allows the use of two programming languages:
5581
5682**C++ with the language set of C++17 ** - in case additional elements from C++20 are needed this will be considered by
5783:need: `rl__safety_manager `, :need: `rl__security_manager ` and :need: `rl__quality_manager `
@@ -62,6 +88,10 @@ For the Rust code of ASIL rated units the "safe subset" shall be used (which is
6288
6389C language is allowed in incubation phase, as long it is compilable be the selected compiler, but not for a S-CORE release.
6490
91+ For specifying **Detailed Design ** (like for the Architecture) a mixture of UML diagrams and natural language is used.
92+ Additionally for the Detailed Design linking to code, Doxygen style comments are used.
93+ This is described in :need: `doc_concept__imp_concept ` and guided by :need: `gd_temp__detailed_design `
94+
6595Design guideline
6696^^^^^^^^^^^^^^^^
6797
0 commit comments