The Semantics and Execution of a Synchronous Block-Diagram Language

Stephen A. Edwards and Edward A. Lee

Science of Computer Programming, Vol. 48 No.1, pp. 21-42,July, 2003

Prepublished version
Published version



We present a new block diagram language for describing synchronous software. It coordinates the execution of synchronous, concurrent software modules, allowing real-time systems to be assembled from precompiled blocks specified in other languages. The semantics we present, based on fixed points, is deterministic even in the presence of instantaneous feedback. The execution policy develops a static schedule - a fixed order in which to execute the blocks that makes the system execution predictable.

We present exact and heuristic algorithms for finding schedules that minimize system execution time, and show that good schedules can be found quickly. The scheduling algorithms are applicable to other problems where large systems of equations need to be solved.