Fri Apr 5 16:30:43 EDT 2019
Look at the geometry of the problem
For a simple state machine, that's a graph. For a push-down
automaton, that's something else.
There are actually two things that make a CPU approach simple:
- sequential programming
- subroutines (parameterized repetition)
Subroutines are mostly useful as a compression step. It is part of
the incremental solving of a problem, adding to the solution when
there is already something there. Maybe leave this as step two?
So what is step one?
- Write some pseudocode.
- Coalesce everything that can be parallellized
- Write an explicit state diagram for this (in Haskell)
- Compile that down to a bit-level implementation.
So start by encoding the program and the opcodes as a data type.
I need an example state machine.