[Haskell-cafe] ANN: atom-0.0.2

Tom Hawkins tomahawkins at gmail.com
Sun Apr 26 16:39:17 EDT 2009

Atom is a DSL in Haskell for designed hard realtime embedded programs.
 At Eaton, we are using it to control hydraulic hybrid refuse trucks
and shuttle buses.  After my talk at CUFP
(http://cufp.galois.com/2008/schedule.html), a few people inquired
about atom -- I finally had a chance to upload it to Hackage.


Some new enhancements:
- A simple rule scheduler for load balancing.
- Signal probing for debug and data logging.
- Functional coverage to monitor which rules have executed.
- Started integration with the Yices SMT solver for bounded model checking.

Experiences with our Eaton project:
- 5K lines of Haskell/atom replaced 120K lines of matlab, simulink,
and visual basic.
- 2 months to port simulink design to atom.
- 3K lines of atom generates 22K lines of embedded C.
- Design composed of 450 atomic state transition rules.
- Rules with execution periods from 1ms to 10s all scheduled at
compile time to a 1 ms main loop.
- 3 minute compilation time from atom source to ECU.
- Atom design clears electronic/sw testing on first pass.
- Currently in vehicle testing with no major issues.


More information about the Haskell-Cafe mailing list