A sequentially constructive circuit semantics for Esterel
Static Single Assignment (SSA) is an established concept that facilitates various program optimizations. However, it is typically restricted to sequential programming. We present an approach that extends SSA for concurrent, reactive programming, specifically for the synchronous language Esterel. This extended SSA transformation expands the class of
programs that can be compiled by existing Esterel compilers without causality problems. It also offers a new, efficient solution for the well-studied signal reincarnation problem.
Finally, our approach rules out speculation/backtracking, unlike the recently proposed sequentially constructive model of computation.