Table of Contents
Fetching ...

Compiling the Mimosa programming language to RTOS tasks

Nikolaus Huber, Susanne Graf, Philipp Rümmer, Wang Yi

TL;DR

The paper tackles compiling Mimosa programs to RTOS tasks by separating computation steps from the coordination layer and adapting Lustre's clock-directed compilation to Mimosa's semantics, including per-node periods $T_i$. The pipeline proceeds via normalisation to NormIR, objectification to OOIR, and generation of sequential C code, with channels mapped to time-stamped FIFOs to faithfully emulate MIMOS timing. A formal edge-detector example demonstrates the handling of optional values and the coordination between periodically activated nodes. This work enables practical deployment of Mimosa on embedded hardware and lays groundwork for extensions such as relaxed port policies, effect tracking, and speculative execution within the Mimosa toolchain.

Abstract

This paper introduces a compilation scheme for programs written in the Mimosa programming language, which builds upon the MIMOS model of computation. Mimosa describes embedded systems software as a collection of time-triggered processes which communicate through FIFO queues. We formally describe an adaptation of the Lustre compilation scheme to the semantics of Mimosa and show how the coordination layer can be mapped to real-time operating system primitives.

Compiling the Mimosa programming language to RTOS tasks

TL;DR

The paper tackles compiling Mimosa programs to RTOS tasks by separating computation steps from the coordination layer and adapting Lustre's clock-directed compilation to Mimosa's semantics, including per-node periods . The pipeline proceeds via normalisation to NormIR, objectification to OOIR, and generation of sequential C code, with channels mapped to time-stamped FIFOs to faithfully emulate MIMOS timing. A formal edge-detector example demonstrates the handling of optional values and the coordination between periodically activated nodes. This work enables practical deployment of Mimosa on embedded hardware and lays groundwork for extensions such as relaxed port policies, effect tracking, and speculative execution within the Mimosa toolchain.

Abstract

This paper introduces a compilation scheme for programs written in the Mimosa programming language, which builds upon the MIMOS model of computation. Mimosa describes embedded systems software as a collection of time-triggered processes which communicate through FIFO queues. We formally describe an adaptation of the Lustre compilation scheme to the semantics of Mimosa and show how the coordination layer can be mapped to real-time operating system primitives.
Paper Structure (8 sections, 9 equations, 9 figures)

This paper contains 8 sections, 9 equations, 9 figures.

Figures (9)

  • Figure 1: Edge detector example
  • Figure 2: Edge detector in Mimosa
  • Figure 3: Abstract syntax of Mimosa expressions
  • Figure 4: Memory operators
  • Figure 5: Compiler phases overview
  • ...and 4 more figures