[Haskell-cafe] ANN: atom-0.0.2

0 views
Skip to first unread message

Tom Hawkins

unread,
Apr 26, 2009, 4:39:17 PM4/26/09
to haskell-cafe
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.

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/atom-0.0.2

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.


Tom
_______________________________________________
Haskell-Cafe mailing list
Haskel...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

John Van Enk

unread,
Apr 26, 2009, 10:48:07 PM4/26/09
to Tom Hawkins, haskell-cafe
Tom,

A huge thanks for sharing this.

/jve

Don Stewart

unread,
Apr 27, 2009, 12:29:39 PM4/27/09
to Tom Hawkins, haskell-cafe
tomahawkins:

> 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.
>
> http://hackage.haskell.org/cgi-bin/hackage-scripts/package/atom-0.0.2
>
> 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.


Congratulations on the release!

-- Don

John Van Enk

unread,
May 5, 2009, 12:06:54 AM5/5/09
to Tom Hawkins, haskell-cafe
If any one has been looking at this and wants another example, I've finished two posts on the topic of Atom.

These posts depend on a patch: http://code.sw17ch.com/blog/atom/atom_0.0.2_sw17ch_1.diff

Part 1: http://blog.sw17ch.com/wordpress/?p=84 <- Brief discussion and describes the patch
Part 2: http://blog.sw17ch.com/wordpress/?p=111 <- Writing a program to blink an LED.

Feed back would be appreciated!

/jve

On Sun, Apr 26, 2009 at 4:39 PM, Tom Hawkins <tomah...@gmail.com> wrote:
Reply all
Reply to author
Forward
0 new messages