3 ms·
As parent has noted, FSM models are flexible boundary abstractions and you can apply them repeatedly to reach the desired level of granularity. For example, yo
by megameter 6y ago
As parent has noted, FSM models are flexible boundary abstractions and you can apply them repeatedly to reach the desired level of granularity.
For example, you might start with a large block of code with many inputs and many side effects.
You can map this block of code into a FSM directly - as a "giant switch statement" of all conditional combinations and copy-pasted side effects - or you can devise a way of specifying it that makes it an "input FSM" and an "output FSM" where the input FSM enumerates the types of side effects, and the output FSM acts upon them.
You can also hybridize FSM behaviors with simple constraint optimization to create "smart" solvers: Define a heuristic for solution goodness. Then run the FSM speculatively with various combinations of inputs and rank which combo best fits the heuristic.