Improving Constructiveness in Code Generators
- Publication date
- Publisher
Abstract
Perfectly synchronous systems immediately react to the inputs of their environment. These instantaneous reactions may result in so-called causality cycles between the actions of a system and their preconditions. Programs with causality cycles may or may not have consistent and unambiguous behaviors. For this reason, compilers have to perform a causality analysis before code generation. In this paper, we analyze the impact of different code generation schemes on causality analysis and propose translations that yield different degrees of causality. To this end, we first translate the program to an equation system as an intermediate representation, which may alternatively be viewed as a hardware circuit. The second step then analyzes the equation system as known from ternary simulation of hardware circuits with combinational feedback loops. In particular, we consider alternative ways to obtain logically equivalent equation systems that show, however, different results in causality analysis