C Language Implementation
The FW Profile provides an unambiguous definition of State Machines, Procedures (Activity Diagrams) and RT Containers (encapsulation of threads). The C1 Implementation is a C-language implementation of these concepts. Its user manual is publicly available from this document. The chief characteristics of the C1 Implementation are:
- Well-Defined Semantics: clearly and unambiguously defined behaviour.
- Minimal Memory Requirements: core module footprint of a few kBytes.
- Small CPU Demands: one single level of indirection (due to actions and guards being implemented as function pointers).
- Excellent Scalability: memory footprint and CPU demands are independent of number and size of state machine and procedure instances.
- High Reliability: test suite with 100% code, branch, and condition coverage (excluding error branches for system calls).
- Formal Specification: user requirements formally specify the implementation.
- Requirement Traceability: all requirements individually traced to implementation and verification evidence.
- Documented Code: doxygen documentation for all the source code.
- Demo Application: complete application demonstrating capabilities and mode of use.
- Support for Extensibility: an inheritance-like mechanism is provided through which a derived state machine or a derived procedure is created from a base state machine or base procedure by overriding some of its actions or guards.
- Processor Architecture Independence: independent of processor architecture, suitable for 8, 16, 32, 64-bit systems.
- Simple programming interface: allowing fast manual definition of state machines or activity diagrams directly at the C code level, or development of a code generator for a favorite UML modeling tool.
These characteristics make the C1 Implementation especially well-suited for use in embedded and safety-critical applications.