Every message is, in one sense or another, a simulation of some idea.
The notion of multiple control paths allows the separate notions of "files", "operating system", "monitor", etc., to be replaced by the single idea that the user is also a process (and thus has state which consists of variables and bindings, etc.). When he leaves the machine, his process is passivated until the next time he rejoins his DynaBook. His state (which is now activated) constituted "files" while he was away. The control of the evaluation of various programs is also accomplished without any additional mechanism through direct execution of user input (the "direct" mode of JOSS, LISP, etc.). Since multiple control paths are allowed, many processes can be in various stages of evaluation and debugging.
The basic idea is to exploit the duality between 'functions and tables (or processes and memory). English has nouns which refer to "objects", and verbs which refer to "actors" and "relators". This is a Newtonian epistemology.
Modern physics and philosophy tend towards the idea that both "objects" and "actors" are just different aspects of the notion of process.
A process has state (a set of relations having only to do with it) which changes as time (defined as interactions with other objects) passes.
Using this view "data" is a process which changes "slowly", "function" is a process which changes more rapidly. Each process has the logical attributes of a complete "micro" computer: they can have inputs, give back outputs, act as a memory on file system, perform computations, be interrupted, etc. Since a "computer" can simulate all other computers (modulo time and space), having the notion of a process in a language allows useful ideas such as: arrays, records, recursive...
The use of this language (Smalltalk) is essentially divided into two activities:
1. giving names to objects and classes (memory association),
2. retrieving objects and classes by supplying the name under which they had been previously stored.
A process consists of these (activities) and is terminated when there are no longer any names under scrutiny. Although all of such a language can be easily derived from just these two notions, a few names would have an a priori meaning in order to allow interesting things to be done right away. The following principles should be used, in the design of the DynaBook language.
We need a uniform notion as to what objects are, how they may be referred to, and how they can manipulate other objects.
If each object can have its own control path, then there must be a concise way to coordinate and "control" these paths when more than one is active.
The evaluation of a control path should follow simple rules which show how objects are...
If it can't reprogram itself, it's an appliance. If it can reprogram itself, it is a computer. If the user can reprogram it, it is a personal computer.
an appliance is not a stripped-down computer, it is a fully-functional computer with spyware on it out of the box
The machine operates on an infinite[4] memory tape divided into discrete cells,[5] each of which can hold a single symbol drawn from a finite set of symbols called the alphabet of the machine. It has a "head" that, at any point in the machine's operation, is positioned over one of these cells, and a "state" selected from a finite set of states. At each step of its operation, the head reads the symbol in its cell. Then, based on the symbol and the machine's own present state, the machine writes a symbol into the same cell, and moves the head one step to the left or the right,[6] or halts the computation. The choice of which replacement symbol to write, which direction to move the head, and whether to halt is based on a finite table that specifies what to do for each combination of the current state and the symbol that is read. Like a real computer program, it is possible for a Turing machine to go into an infinite loop which will never halt.
Whatever the hell Leibniz was thinking about
Information theory
Computability theory (Turing)
Cellular automata
Computational complexity theory
Fractal geometry
Asymmetric cryptography
Modern AI mechanisms
Programmable cryptography
Quantum computing