New Model Computation
User of Machine
- Each executed word is a computation step of the Machine.
- Subcomputations may be performed by the User of the Machine to select the next word.
- A User of a Machine may be a Machine to another User.
- The User-Machine relationship is paramount, and violation is 'computational adultery'.
- The Machine should trust the User, the User should think for and about the Machine.
- Forth illustrates the power of getting words in the right order.
- Each word may change the way future words are interpreted (Forth and TeX are examples).
- A word should not be identified with its spelling or address.
Functional Programming and Data Structures
- Functional programming allows a function to yield the symbol for the next word.
- Data stuctures allow for coordinated storage of symbols (Lisp lists/Turing tapes).
- Hashmaps and Lookup-tables are dictionaries and mutual inverses.
- Dictionaries take one symbol and yield another.
- Symbols are meaningless without a language context in which to interpret them.
Object Oriented Functional Programming
- Mutable state is contained by computational objects
- Each object manages its own state
- Functions and procedures are valid computational objects I their own right, and are not the same.
- Functions take a structured pattern of symbols and return likewise, possibly one symbol.
- Procedures are lists of computational steps: they need a machine to interpret them.