Effects on Storage
The Kernel AN2 notation for efects on storage differs from the corresponding imperative facet of AN1. The main change is that in AN2, cells of storage are no longer reusable: in any performance, each cell can only be given at most once by the create action, even if the use of the cell is subsequently stopped explicitly by the action destroy. In AN1, reserved cells that became 'unreserved' were regarded as no longer in the storage, and could be reserved again. Another difference is that in AN2, cells are always initialized when created (with a given storable value), and there is no builtin support for a distinct 'uninitialized' value. Moreover, the AN1 action 'unstore' was seldom used, and has been dropped in Kernel AN2. Since there are no yielders in Kernel AN2, update has to be given a cell and a storable value as data, and inspection of the value stored in a cell has to be an action. There is no AN2 action corresponding to the AN1 yielder current storage, which has not been of much use in practice. A further diference between the treatment of storage in AN2 compared to that in AN1 is that storage is in principle global, and cells created by one agent may be updated, inspected, or even destroyed by other agents. |
Data| Flow of Data and Control| Scopes of Bindings| Interactive Processes