Threads contain statement sequences Si and communicate through shared references in the store. A thread is dataflow if it only executes its next statement when all the values the statement needs are available. If the statement needs a value that is not yet available, then the thread automatically blocks until it can access that value. As we shall see, data availability in the Oz model is implemented using logic variables. The shared store is not physical memory, rather it is an abstract store which only allows operations that are legal for the entities involved, i.e., there is no direct way to inspect the internal representations of entities.
Variables can reference the names of procedures and cells.
Cells point to variables. The external reference procedures are variables. Variables can be bound to any entity, including other variables. The variable and procedure stores are monotonic, i.e., information can only be added to them, not changed or removed. Figure 1.1 defines the abstract syntax of a statement S in the kernel language.