The evolution of a system with parallel components can be described graphically in terms of a Petri net representation. This representation lends itself naturally to a logic program description. The aim of this paper is to develop the use of Flat Concurrent Prolog (FCP) as a modeling and simulation tool for such systems. FCP has the ability to simulate the dynamic behavior of a system modeled by a Petri net. This simulation is achieved by a procedure that checks each transition in the net for the presence of all its input tokens. Since these checks are performed in parallel, the transition requiring the least number of resources will be fired first. Other elements to be included in the firing policy to resolve conflicts can also be taken into account; thus, random firing may be achieved by the inclusion of a random variable. It would seem that the indeterminacy of Concurrent Prolog should achieve the same effect.
Subsequent sections deal with simulations of timed Petri nets using timing mechanisms that can be programmed in FCP. Synchronization is achieved using the short-circuit technique of Concurrent Prolog, which is explained adequately. The development is then extended to include colored nets, and thence to flexible manufacturing system designs that entail timed colored nets, by way of an example incorporating machine tools, conveyors, and a warehouse. The paper investigates the use of FCP to analyze system behavior with respect to structural features. Sample programs determine whether a system is asynchronous, check whether each process in a system has sufficient resources to run at least once, and detect deadlock (defined somewhat restrictively).
The authors feel that FCP has advantages over existing techniques of system modeling using Petri nets in that it is a programming tool (with top-down design ability) and in that it provides a single environment for both design and analysis. The approach lends itself to the possibility of providing a practical working tool, subject to the availability of an efficient implementation of FCP.
The paper is of adequate length for the material covered, but I have some reservations about the presentation. Better proofreading could have eliminated a host of errors that distract the reader from the thread of the discussion. Some of the programs could have been expressed in a more readable form, and editing of the paper has apparently introduced a mismatch between the procedures listed and the procedures discussed in the text.