The Framework Profile

About

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.