Thursday 14 April 2011

Going Native

Machines

We defined a machine as a functional unit - give some input data it will produce some outputs.

To map to native code inputs will be mapped as a pointer (that points to a machines output - note, it _could_ be itself).

To map to native code outputs will be represented as physical storage.

Every input and output can be named (and maybe typed one day).

Somewhat stolen from Forth is the idea that a machine can be compiled - once compiled a lot of dead code can be eliminated BUT (and it's a big but) what's within the machine can no longer change - the data flowing through it can change (necessarily) but we can't add or remove components nor can it's output to input connections be changed.

You don't have to do this though. If you continue to interpret your machine all edits are still possible - it will just run a bit slower (probably about 10 times slower!)

No comments: