Compiling Esterel into sequential code

  • Authors:
  • Stephen A. Edwards

  • Affiliations:
  • Advanced Technology Group, Synopsys, 700 East Middlefield Road, Mountain View, California

  • Venue:
  • Proceedings of the 37th Annual Design Automation Conference
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Embedded real-time software systems often need fine-grained parallelism and precise control over time, things typical real-time operating systems do not provide. The Esterel language has both, but Existing compilers produce slow code for large programs.This paper presents the first Esterel compiler able to produce small, fast code for large programs. It can produce code half the size and up to a hundred times faster than code from existing compilers. Esterel's semantics allow the compiler to statically schedule concurrency and synthesize code that efficiently and predictably simulates context switches. The main contribution is an algorithm that synthesizes an efficient sequential program from the concurrent control-flow graph used as an intermediate representation. These techniques could be applied to any language with fine-grained parallelism.