Code generator tools should support state/event exclusion invariants.
Our code generation tools (i.e., PLC, Java, Simulink, C89, and C99) do not support state/event exclusion invariants. These invariants can be eliminated by first converting them to automata with selfloops. The downsides are that 1) this requires an extra action and 2) that it introduces a new automaton, and thus a new location-pointer variable. This location pointer is also checked when determining if an event is enabled, adding unnecessary stuff to the code (for PLC I am certain, the other tools I have not checked).
We should be able to support state/event exclusion invariants without first converting them.
Edited by Ferdie Reijnen