| OCR Text |
Show 103 for control-driven multiprocessor systems. The basic principle is to have one node calling another node, similar to the procedure calls of Algol, Pascal, etc. Liskov [43] further concluded that atomicity of the remote procedure call was necessary for a robust, distributed program. Atomic remote procedure call shares some similarities with the task spawning phenomenon of applicative systems. But, they are two significantly different approaches. Remote procedure call is a primitive for control-flow languages while applicative evaluation is a form of data-flow languages. Atomicity is a given property in applicative programs while atomic remote procedure call has to be carefully mechanized by the programmer. Furthermore, the motivation for atomic actions is to maintain decentralized data while the main motivation for applicative systems is to exploit massive concurrencies. One may argue that atomic remote procedure call is a step toward devising a functional network for control-driven processing nodes. 3.5 Hierarchical level stam_R A level stamp is a name tag which uniquely identifies an invoked task in an applicative program. The stamping method discussed in section 3.3. 1 provides a global identification for a task. A child stamp is computed by appending one digit to the parent stamp when the child is spawned. The method is simple. unambiguous, and conceptually easy to implement. Ho'wever, the length of the stamp may grow too big to be practical when an algorithm derives an irregular call tree (Figure 35). Narrow · and slender program graphs, like the tasks xa, xaa ... in Figure 35, cause the length of the level stamp to increase at O(n) where n 1s the number of tasks. This type of calling structure is not uncommon m applicative programs, since most tail recursive algorithms [9] have the potential of generating one. |