| OCR Text |
Show are not references to pointers might be proclaimed as such. This does not present any problems in practice, since the user will easily detect superfluous pointers on the screen. A more complete solution requires significantly more effort. 4.5.3 Modifying Executor The director can modify the executor's state. The state consists of variables, complex data structures and code. Monitoring mechanisms (the filter and the execution stream) enable the director to find execution states where modifications are safe and will not corrupt the executor. Modifying Variables A simple modification of the executor's state is to modify the value of a variable (see Figure 4.12). The name and the type of the variable are known from the executor's source code. They can also be obtained from the interpreter's symbol tables. Routine dsgetsym returns the address of the named variable in the executor's address space. A call to dsputmem modifies the variable in the executor. Variable value contains the value that is copied to the executor. By using dsgetmem instead of dsputmem, the^ director can obtain the value of the variable from the executor. Modifying Complex Data Structures The director can access and modify the entire state of the executor including composite data structures. If the director and the executor are programmed in the same programming language with identical layout and semantics of data types, the director can traverse, copy and modify arbitrarily complex data structures. address = dsgetsym(name); dsputmem(address,size,value); 89 Figure 4.12. Modifying a Variable |