The next candidate-draft, the eFMI® Standard 1.0.0 Beta 2, for the first official release of the eFMI® Standard has been released! You can download it from the Home page and the Resources page.
This is the second Beta release, continuing the chapter-wise finalization of the eFMI® Standard 1.0.0. This time “Chapter 3. Guarded Language for Embedded Control (GALEC)” is finalized (Beta 1 finalized “Chapter 5. Behavioral Model Representation”).
The GALEC specification has been significantly extended and refined to achieve semantic completeness; the main features of the GALEC specification are:
- Complete well-formedness and execution semantic rules, whose main concepts are formally defined and mandatory analyses backed by constructive definitions (e.g., graph-based pseudoalgorithms).
- Clear requirements, avoiding optional feature levels, essentially distinguishing only “must” and “must not”.
- Clear separation between normative rules and non-normative examples and rationales. The latter provide a comprehensive overview of language design choices, their consequences, and potential optimizations and design-alternatives for compliant tooling.
- Guarantees on program side-effects, maximum algorithmic operations (i.e., termination) and memory consumption, safe indexing, and strict error-handling. GALEC programs are deterministic and well-defined without undefined behavior.
- Advanced control- and data-flow rules guaranteeing proper initialization and state usage.
- Error signaling concept part of ordinary control-flow (no exceptions) enabling delayed error-handling without the risk of missing numerical issues, even if such only occur within a subexpression whose result is not assigned.
- Simple name space and scoping concept without shadowing.
- Explicit operators and functions; no implicit type conversions or operator or function overloading.
- Dedicated multi-dimensional arithmetic operators for all kinds of multidimensional and scalar operands combinations.
- Definition of commutable statements enabling target specific concurrent execution.
- Rich set of built-in functions for typical mathematical operations (such as solving linear equation systems or interpolation) and to abstract from target environment specific characteristics (such as type ranges), properly integrated with the error handling concepts.
- Online recalibration and input-dependent (re)initialization with well-defined levels of variabilities.
- Well-defined block-interface and life-cycle, defining how to utilize (i.e., system-integrate) GALEC programs.
In addition to “Chapter 3. Guarded Language for Embedded Control (GALEC)”, Beta 2 introduces proper syntax highlighting for listings, in particular GALEC programs, and finalizes all appendices:
- “Appendix A: Implementation of GALEC built-in functions”: Portable reference implementation of the GALEC built-in functions, except
solveLinearEquationsandinterpolation1/2/3D, in GALEC with target platform specific semantic (like type ranges) highlighted as embedded pseudocode fragments. - “Appendix B: Legal information”: Copyright, licensing, registered trademarks, colophon (fonts and tooling used to write the standard), and disclaimer.
- “Appendix C: Normative references”: Precise definition of referenced standards, including revisions, corrigenda, errata, amendments, etc.
There are only minor improvements in the other chapters; they will be focused on and finalized in individual future Beta candidate-drafts.
If you have any general questions, feedback or improvement proposals for the eFMI® Standard, please follow the reporting specification issues and new feature requests guidelines on our website or contact us on our public mailing list, efmi-info@googlegroups.com (no Google account required).
Your feedback is very welcome!