Control Logic
We consider systems that have event streams as inputs and outputs, where
EventStreams = [Naturals0 → Symbols]
where Symbols is some set. The events in the event streams indicate commands or events detected in a physical process. The system itself performs sequential decision making, reacting to input events by producing output events.
Consider for example a voiceband data modem in its negotiation phase. It is natural to describe the negotiation imperatively, using a sequence of if-then-else clauses:
if (answer tone detected) { respond with identification tone; if (response detected) { ... } } else { hang up; }
Here, "answer tone detected" and "response detected" are events. This imperative description gives the control logic of a system. It does not, for example, say anything about how an answer tone is detected. That is the signal processing of the system.
An imperative definition based on if-then-else clauses can be difficult to analyze, particularly when system components are composed and execute concurrently. State machine models offer an alternative that yields better to formal analysis.