Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

When state machines are finite, and are well-formalized, they are fairly easy to understand and debug.

State machines descriptions can lie. For instance, suppose that the implementation of a state machine grows hair that is not folded back into the specification. For instance, originally, the outputs of state transitions were just pure outputs. Now they are secretly fed back into the machine and give rise to additional states.

Or, originally, the state machine just consumed input events and changed state. Now, without it being clear in the diagrams and documentation, the machine can push back any number of events into the event stream to process again, including rearranged and edited versions of the events. This is just modeled as an "output" of certain transitions. Oops! (Why, it must be an output, because it's coded in some "output handler" function in the state machine implementation).



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: