| OCR Text |
Show 56 4.1.2.1 Boplo&'s Finite State Machine. Each Boplog process executes the finite state machine indicated by the transition diagram of Figure 12. All Boplog processes begin in the start2 state except for one, the originating process, which begins in the startl state. The originating process is the one designated to begin the execution. It executes W AM instructions, possibly generating choice points which cause some of the other processes to enter the active migrating state. In the figure, a process in the in the active migrating state moves work from an active process. In the active executing state, it executes WAM instructions: in the active failing state it backtracks (perhaps repeatedly). When a process is in the idle searching state, it looks for tasks to migrate. When the originating process notes that all work emanating from the first choice point has completed, it sets a flag in each Boplog process's information block. In the idle checking state, a process checks this flag to see if it may terminate. If the termination flag has not been set by the originating process, the process enters the idle recovering state. In this state, the process attempts to recover its stack and heap space. In doing so, it can detect when all work emanating from each choice point has completed, and can inform other processes that work has completed on their choice points. This process is described more fully in Section 4.4.1. 4.2 Binding Environment The multiple-binding environment method used by Boplog is central to other design decisions, and many of the other critical aspects of Bop log follow directly from the binding method. It is worthwhile to develop the ideas behind the method in some depth. 4.2.1 General Considerations It is useful to examine characteristics of logic programs which might impact the efficiency of a particular environment method. Most variable accesses are short; the reference is generally to a value cell created recently [15]. This evidence suggests that a binding method whose performance is proportional to the distance between |