Concurrent Models of Computation for Embedded Software

Edward A. Lee and Stephen Neuendorffer

IEE Proceedings, Computers and Digital Techniques, Vol. 152, Issue 2, pp. 239-250, March, 2005.

Prepublished version
Published version



The prevailing abstractions for software are better suited to the traditional problem of computation, namely transformation of data, than to the problems of embedded software. These abstractions have weak notions of concurrency and the passage of time, which are key elements of embedded software. Innovations such as nesC/TinyOS (developed for programming very small programmable sensor nodes called motes), Click (created to support the design of software-based network routers), Simulink with Real-Time Workshop (created for embedded control software), and Lustre/SCADE (created for safety-critical embedded software) offer abstractions that address some of these issues and differ significantly from the prevailing abstractions in software engineering. This paper surveys some of the abstractions that have been explored.