5.2 A Register Machine Simulator
one way to test our machine design is to carry out the state during
operations by hand. but that would be silly!! lol. it's a scheme
program with 4 interface procedures:
- (make-machine reg-names operations controller)
- (set-register-contents! machine-model reg-name value)
- (get-register-contents machine-model reg-name)
- (start machine-model)
5.2.1 the machine model
make-machine extends the basic machine model with a message passing
technique.
it has registers holding value as local state. we can get and set.
the stack is likewise a procedure with local state. we can push, pop,
and initialize to empty.
5.2.2 the assembler
the assembler transforms a series of controller expressions into a
corresponding list of machine instructions.
(assemble controller-text machine)
5.2.3 generating execution procedures for instructions
this is some wild shit! true galaxy brain takes.
implementing the fundamental instructions of the machine.
assign, test, branch, goto,
save, restore, perform,
primitive exp
5.2.4 monitoring machine performance
we can verify not only correctness of a machine design, but also
measure its performance
cool souped up stack implementation