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.
