Atom is a Haskell DSL for designing hard real-time embedded
applications. At Eaton, we use it for automotive control systems. An
Atom description is composed of a set of guarded atomic actions that
operate on a global program state. Atom makes it easy to manage
program concurrency without the need for mutex locking and run-time
task scheduling. As such, Atom can eliminate the need and overhead of
an RTOS, which traditionally serves these functions.
This release includes several improvements to C code generation,
including a simplified rule scheduler that consumes less memory and
execution time. It also ships with a new unit testing framework that
allows the use of assertions and functional coverage points to assist
with program verification.
http://hackage.haskell.org/package/atom