New Model Computation

User of Machine

  1. Each executed word is a computation step of the Machine.
  2. Subcomputations may be performed by the User of the Machine to select the next word.
  3. A User of a Machine may be a Machine to another User.
  4. The User-Machine relationship is paramount, and violation is 'computational adultery'.
  5. The Machine should trust the User, the User should think for and about the Machine.

Going Forth

  1. Forth illustrates the power of getting words in the right order.
  2. Each word may change the way future words are interpreted (Forth and TeX are examples).
  3. A word should not be identified with its spelling or address.

Functional Programming and Data Structures

  1. Functional programming allows a function to yield the symbol for the next word.
  2. Data stuctures allow for coordinated storage of symbols (Lisp lists/Turing tapes).
  3. Hashmaps and Lookup-tables are dictionaries and mutual inverses.
  4. Dictionaries take one symbol and yield another.
  5. Symbols are meaningless without a language context in which to interpret them.

Object Oriented Functional Programming

  1. Mutable state is contained by computational objects
  2. Each object manages its own state
  3. Functions and procedures are valid computational objects I their own right, and are not the same.
  4. Functions take a structured pattern of symbols and return likewise, possibly one symbol.
  5. Procedures are lists of computational steps: they need a machine to interpret them.