Issue No. 04 - April (1991 vol. 17)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.90432
<p>A graph-oriented, nonprocedural development environment in which composite programs are constructed by coupling a collection of existing component programs, the interfaces of which are defined by a fixed number of input ports and output ports, is discussed. It is shown that when the coupling graph is cyclic there is the possibility of a deadlock. A system that permits hierarchical construction of programs while testing, using a simple algebraic procedure, the resulting composite programs for communication deadlocks is presented. A decomposition-based approach to cycle enumeration is described. A formal graph-theoretic model of communication behavior for a class of atomic programs is presented. The model is then used to derive necessary and sufficient conditions for a deadlock to arise in a cycle. Techniques for dealing with deadly cycles (once identified) and improving the efficiency of their execution, once the cycles have been resolved, are described.</p>
decomposition; graph theory; hierarchical construction; circularity; nonprocedural development environment; composite programs; interfaces; input ports; output ports; coupling graph; cyclic; communication deadlocks; cycle enumeration; communication behavior; atomic programs; necessary and sufficient conditions; deadly cycles; concurrency control; graph theory; programming environments; programming theory
W. Muhanna, "Composite Programs: Hierarchical Construction, Circularity, and Deadlocks," in IEEE Transactions on Software Engineering, vol. 17, no. , pp. 320-333, 1991.