Mon Nov 11 11:27:26 EST 2019
What struck me writing the DHT11 driver is that even for this simple
example, there are essentially two execution traces: The sequence of
pin transitions, and the global timeout.
There is something extra about parallelism that is impossible to
express in straight line code, and you get there quite quickly.
Actually it's very straightforward: often, a real-world interaction
system needs to concept of time, not just of events. Events have only
an _order_ property. Time is something else: there are two flavors:
- timestamps: map 2 events to 1 postive/negative number.
- alarms: map 1 positive number to the occurance of a future event