Data flow analysis of program nets

Data flow analysis of program nets

Data Flow Analysis of Program Nets by KENJIONAGA Department of Circuits and Systems, Faculty University, Senda-cho, Hiroshima, Japan of Engineering,...

649KB Sizes 3 Downloads 86 Views

Data Flow Analysis of Program Nets by KENJIONAGA

Department of Circuits and Systems, Faculty University, Senda-cho, Hiroshima, Japan

of Engineering,

and WAIKAICHEN Department of Information Engineering, University Circle, Box 4348, Chicago, IL 60680, U.S.A.

Hiroshima

of Illinois at Chicago

ABSTRACT: This paper deals with the data flow analysis of program nets by means of firing sequences, and presents some basic properties on maximal firing numbers and terminating conditions. Specifically, it is shown that a node in a program net is firable if a certain subgraph containing the node does not exist. An algorithm for the determination of the maximal firing number is also presented.

Z. Introduction A flow chart is a widely used graphical model for expressing a structure of a program. An execution of the program is expressed by a trajectory of a single token through chart elements where the token is processed upon by operators (functions, procedures) in rectangular boxes or directed to one of several destinations by deciders in decision boxes. The token in the flow chart represents a mixture of control flows and data flows among program elements. At any moment, only a single token exists in the chart. A program graph of Rodriguez (1) and Dennis (2) is a variation of Petri nets of Petri (3), specifically tuned to program representation. It can be seen as a simple case of GAN and GERTS of Elmaphraby (4) and Pritsker and Happ (5) in operations research. In the program graph a node represents either an operator, decider, merge, fork or switch. An edge represents a communication channel of tokens between nodes and serves also as a FIFO queue of holding tokens. A token represents abstract data whose structure varies from edges to edges. An execution of the program is expressed by a flow of tokens through the graph where tokens are transfered across a node from input edges to output edges by node firing. The output of a decider is binary-valued and is used to control a switch to open or close. See Fig. 1 for a program net. In this paper, we deal with data flow analysis of program nets (we prefer this terminology for emphasizing token flows) by means of firing sequences and present some basic properties on maximal firing numbers, and terminating conditions. 0

1982 The Franklin Institute 0016-M)32/82/040219-13$0).00/O

219

Kenji Onaga and Wai Kai Chen

Program While X is non empty do begin x in X; X+X-(x); ifx
FIG. 1. A program

and its net representation. The outputs of the switch T and F. Data flow; -----+ control flow.

are labeled

with

Net Elements (2) A program net N is a token flow activity on a base digraph G = (V, E) with initial token distribution d” such that the topology of G is depicted in Fig. 2 where V = set of nodes of 5 types, E = set of directed edges e with initial d”, tokens, s = source, t = sink, (s, s’) = input edge with a single start token, (t’, t) = output edge with no token. For any node x there are directed paths from the source s and to the sink t. II.

Five types of nodes are as follows: (1) Operator. It possesses one or two inputs regarded a function of the inputs.

FIG. 2. Topology

220

and one output.

The output

is

of G. Journal of the Franklin Institute Pergamon Pras Ltd.

Data Flow Analysis of Program Nets (2) Decider. It possesses one or two inputs and one output. The output is a binary-valued function of the inputs and used as the control signal to a switch. (3) Merge. It possesses two inputs and one output. The output is a merge of the inputs. (4) Fork. It possesses one input and two outputs. The outputs are copies of the input. (5) Switch. It possesses one input and two outputs. A token on the input is directed to output T (or F) if the token value on the control input is T (or F). Firing rules of respective nodes types are as follows: (1) AND-node (operator, decider, fork) is firable if each of its inputs has at least one token. If a firable node is fired, one token is removed from each input and one token is placed on each output. (2) OR-node (merge) is firable if one of its inputs has at least one token. If a firable node is fired, one token is removed from one but not both of its inputs and one token is placed on the output. (3) Switch-node is firable if the data input and control input have at least one token each. If the value of the head token on the control input queue is T (or F), then the token on the data input is directed to the output terminal T (or F) and the control token is removed. The firing rules of various node types are summarized in Table 1. We choose as the net elements only those tabulated in Table 1, for simplicity. We remark that a node of multiple inputs and multiple outputs can be constructed in the manner shown in Fig. 3.

TABLE I.

After fire

Before fire

Node type

Operator

Firing rule

>

2+---

Fork

y<

r<

Merge

>--

Decider

35z:

>>

-j:

Switch

Vol. 313, No. 4, pp. 219-231, April 1982 Printed in Great Britain

221

Kenji Onaga and Wai Kai Chen

FIG. 3. Construction III. Terminating In this paper,

Firing Sequences

of multiple inputs and outputs. of a Program

Net Without Switches

we deal with a program net which does not contain switches. Since a switch changes data channeling from one node to the other depending on the binary value of the control token, firing behavior becomes unnecessarily complicated and hence the switch is better excluded from the net in the preliminary analysis. The program net without switches is an extension of the computation graph (6) and the marked graph (7). Let N = (G, d”) be a program net without switches, where G = ( V, E) is the base graph and d” = (dy, d;, . . . , di) is the initial token distribution, dq tokens on edge i. A firing sequence F = (vo, vI, . . . , vk_,) of N is a sequence of nodes such that (i) node V;:is firable with respect to token distribution d’, i 2 0, and (ii) by firing of vr, the token distribution changes from d’ to di+‘. F is called terminating if it is of a finite length k < ~0and satisfies (iii) any node x is dead (or not firable) with respect to the last token distribution dk. A terminating firing-sequence fi is maximal in the sense that no firable node can be concatenated to it. Let fX be the number of times node x fires in fi, i.e. the number of times node x appears in fi In the final token distribution, we have (i) for operator, decider or fork z, at least one input to z is token-free, and (ii) for merge z, both inputs to z are token-free. Hence the defining equation of f, is given by min [f + d”

f + d” ]

A={ (f^ + j,)+if;;,5d”,?

if z is AND if z is OR

where (x, z), (y, z) are two inputs to z. IV. Dead Nodes A node is called

dead in the net N if it cannot be brought to be fired by any sequence of node firings. The purpose of this section is to characterize dead nodes in terms of a cycleberry. 222

Journal of the

Franklin Institute Per&mm Press Ltd.

Data Flow Analysis of Program Nets A cycleberry containing ( Vcs, Ec,) such that

node

v CB,

is a connected

(ii) (x, y) E E-, implies x,y E V,, (iii) If x E V,, is AND, then only one of its inputs OR, then both of its inputs are in E,,.

subgraph

CB, =

is in Ec,. If x E Vc, is

Some examples are shown in Fig. 4. We list several lemmas whose proofs are given in the appendix. Lemma 1 If a cycleberry containing u is token-free, then node u is dead in the net N.

Lemma 2 If a cycleberry CB, is token-free in the present token distribution, remains so in all subsequent distributions caused by node firings.

Lemma

then

it

3

The number of tokens to node firings.

on a cycleberry

CB, is non-decreasing

with respect

Lemma 4 If program net N = (G, d”) has no token-free can fire at least once, i.e. not dead. From the above lemmas, we have the following

cycleberry,

then every

node

basic property.

Theorem I N = (G, d”), node v is token-free.

In a program net cycleberry containing

u can be brought

to be fired

iff no

V. Maximal Firing Numbers The maximal firing number fx is the number

of appearances of node x in a F = (uO, v,, . . . , q-,). In this section, we present fX’s.

terminating firing-sequence an algorithm for calculating

Calculation of f^ 1” Set fX = 0 for all x in V.

w

z CB,

=

FIG. 4. Cycleberry Vol. 313, No. 4, pp. 219-231. Printed in Great Britain

April

1982

z

CBZ

CE,

(0: AND, A: OR). 223

Kenji Onaga and Wai Kai Chen 2”

Scan nodes

in V in an arbitrarily

fixed order

min
and modify

fZ as follows:

if z is AND if z is OR.

3” Repeat 2” until no change occurs. We state the following lemmas with proofs given in the appendix. Lemma 5 If node u is immediately firable, then f0 > 1. Lemma 6 If there exists a token-free cycleberry containing V, then f^v= 0 and versely. Lemma 7 Let v be immediately firable. Define p by

and let d’ be the token we have:

distribution

min

(c+

resulted

d’

from

f’ + d’ )

’ =( (f”:+ f;) + ;r;:; ; d,,;l

con-

d” by node firing of u. Then

if z is AND if z is OR.

Theorem II Let the algorithm produce finite f Then there exists a terminating firingsequence F whose firing number is f Proof: Let f# 0. We claim that there exists a firable node u with fU > 0. To show this let fi > 0. Assuming 2 is not firable, we trace token-free edges as follows: (i) When z is AND, there is at least one token-free input, say (x, z), with !I3 1. (ii) When z is OR, both inputs say (x, z) and (y, z), are token-free with ix + fY 2 1. Now ask if node x or y is firable. The argument is repeated until either a firable node is reached or a token-free cycleberry is obtained. The second alternative would imply f, = 0 by Lemma 6, a contradiction. Now we apply Lemma 7 repeatedly until p becomes zero. Hence we have obtained a terminating firing-sequence fi whose firing number is equal to f:

QED Example Consider a program net of Fig. 5(A), where AND-node is expressed by 0, OR-node by A and token by 0. We scan the nodes in the order of a, b, c, d. The result is tabulated as follows:

Journal

224

of the Franklin Institute Pergamon Press Ltd.

Data Flow Analysis of Program Nets -

The final token

Scanning

f0

fb

fC

id

L = L

Initial 1st 2nd 3rd 4th

0 1 1 1 I

0 I 2 3 3

0 1 2 2 2

0 1 2 2 2

0 0 0 0 0

distribution

is calculated

d,, = d”,: +fl -fz d,, + d,, = (&

by if z is AND

+ d$) + fx + f,. - fz,

if z is OR

and depicted in Fig. 5(B). We note that the source s and t are never fired. In general a node having no inputs or no outputs is assumed to be not firable. The above result can be checked by simulating the node firing.

VI. Termination of Firing-Sequences In the previous section, we assumed the algorithm to terminate and produce finite { However, it is easy to demonstrate that firing numbers grow unbounded on a directed circuit that has one OR-node to which there is an access from the source s and AND-node from which the sink t is accessed (see Fig. 6A). Since an unbounded firing number makes little sense in the

FIG. 5 An example

of token

Vol. 313, No. 4, pp. 219-231. April 1982 Printed in Great Britain

flows. (a) Initial token

pattern.

(b) Final pattern.

225

Kenji Onaga and Wai Kai Chen

I

[Al

FIG. 6.

FIG. 7.

FIG. 6. Unbounded

firing numbers and its suppression.

FIG. 7. Successive

substitution.

program net, such circuit is suppressed by a directed path from the source consisted of AND-nodes only (see Fig. 6B). Let Q = (s, . . . , x, u) be a directed path from s to a. By successive substitutions of defining equations of step 2” along Q, we have a chain of inequalities

[ d;y (x. YEQ~

+

2 wij=OR

Cd”,,,,

+

i;U)])

where wi is a OR-node on Q, Zi is an input node of wi not on Q, Qi is a directed path from s to Zi, and Wij is a OR-node on Qi and so forth (see Fig. 7 for topology). The above equation is refered to as an expansion of f0 along Q; Qi eee ; Qij aee ; . . . We begin with a few simple observations. Lemma 8 (i) If the net is acyclic, then f0 is not larger than a sum of token numbers of s + u directed paths and hence is finite. (ii) If the net does not contain OR-nodes, then f0 is equal to the shortest distance from the dead nodes (token number is considered as the edge length) and hence finite.

Journal

226

of the Franklin Institute Pergamon Press Ltd.

Data Flow Analysis of Program Nets Proof: (i) If net N is acyclic, no once in the expansion. This means bounded above by a sum of tokens (ii) p is the maximal solution of a

OR-node of Zi, Zip . . appears more than the right hand side of the expansion is on s + D directed paths. system of equations

(ys fx+dOXyfor

all (x, y) E E for all dead nodes z. fi = 0 f is well known to be the shortest distance function.

QED Lemma 9 (i) Intermediate fX of step 2” is non-decreasing with respect to the increase in iteration of step 2”. (ii) The algorithm either terminates and produces a unique finite f^ or does not terminate and p grows unbounded. Proof: (i) Let y be intermediate f^ of i-th iteration. Since f” = 0 and

f: = {

min (f;-’

(f’-’ + d”

fi-’ + d” )

;f;-‘) ;lid; + d;;

if z is AND if z is OR,

we can say p’ 2 p which implies further f’ 2 p’ which implies further and so on. (ii) It is well-known that a non-decreasing sequence of real numbers converges to a unique value or diverges to infinity.

f’ 2 f’ either

QED To characterize the termination of firing-sequences, we define the OR-graph of the net N = (G, d”), GOR= ( VOR,EOR) as follows: (i) It is an ordinary graph consisting of s, t and 3 nodes (Y,.,&, yX for each OR-node x. (ii) To each OR-node x of N, there corresponds a V-shaped digraph of nodes (Y,.,&, y1 as shown in Fig. 8, where (xx, pX are virtual inputs nodes and -yXis the virtual output node of OR-node x. (iii) If there is a directed path of AND-nodes in N from the output of OR-node x to a-input or P-input of OR-node y # x, draw an edge (rX, cry) or (yX, /3,) in GoR. However, we do not allow self-loop (rX, (Y,) or (rX, &) in Goa. Figure 9 shows how to construct an OR-graph. Theorem III If the OR-graph GoR of the program net N contains neither directed circuits nor source nodes excluding s, then the algorithm terminates and produces finite f. Proof: First we observe that unbounded firing number only ever occurs at OR-nodes. This is because the firing number of a program net without OR-nodes is finite. Let v be an OR-node and expand fU along some s + v path. By the nature of the OR-graph construction, it is easy to understand that GoR

Vol. 313, No. 4, pp. 219-231, Printed in Great Britain

April

1982

227

Kenji Onaga and Wai Kai Chen

FIG. 8. V-shape representation

of the OR-node in the OR-graph.

FIG. 9. Program net and its OR-graph.

is a graphical expression of how OR-nodes appear in an expansion of fU. If (Y, of fU involves infinis a source in GOR it is meant that any expansion ite appearances of fU itself because we suppressed self-loop (rU, CX”)in the construction. Therefore, under the stated condition of the theorem, no ORnode appears more than once in the expansion and hence a finite upper bound is produced on the right-hand side.

QED VII. Conclusions We have discussed the terminating firing-sequences F = (vo, v,, v2,. . . , vk-,) of a program net N = (G, d”) and presented some basic properties and 228

Journalof

the Franklin Institute Pergamon Press Ltd.

Data Flow Analysis

of Program

Nets

characterizations of dead nodes, maximal firing numbers, and termination. However, these results should be considered as preliminary, for we have excluded switches from the net in order to simplify the description. From a data flow analysis points of view, the main function of a switch is to control the opening or closing of a loop. Interesting topics to be pursued further are: decomposition and functionality of nets containing loops.

Acknowledgement This work was supported in part by a Grant in Aid for Scientific Research of the Ministry of Education, Science and Culture of Japan under Grant: Cooperative Research (A) 00435013 (1981), General Research (C) 56550252 (1981).

References (1) J. E. Rodriguez, (2) (3)

(4) (5) (6)

(7)

“A graph model for parallel computation”, Report MAS-TR-64, Sept. 1969. J. B. Dennis, “First version of data flow procedure language”, Lecture Notes in Computer Science 19G., Springer-Verlag, New York, 1974. mit Automaten”, Schriften des Rheinisch-WestC. A. Petri, “Kommunikation falischen Institutes fur Instrumentelle Mathematik an der Universitat Bonn, Heft 2, Bonn, 1962. S. E. Elmaphraby, “Activity Networks: Planning and Control by Network Models”, John Wiley, New York, 1973. evaluation and review A. A. B. Pritsker and W. W. Happ, “GERT: graphical technique, part I, fundamentals”, J. ind. Engng, Vol. 17, pp. 267-274, 1966. R. E. Karp and R. E. Miller, “Properties of a model for parallel computations: determinacy, termination, queueing”, SIAM J. appl. Math., Vol. 14, p. 1390, 1966. F. Commoner, A. W. Holt, S. Even and A. Pnueli, “Marked directed graphs”, J. Comput. Syst. Sci., Vol. 5, p. 511, 1971.

Appendix Proof of Lemma 1 We construct a firing precedence tree T, such that u is the root and every ancestor node of x in T, must fire in order for x to become firable. I” v is the root and a+-~. 2” Consider two cases: (i) (Y is AND. Only if there is at least one token-free input edge to (1, choose one and draw a tree edge, say (x, (Y) and set a old. If x is not old, then do a+x and go to 2”. (ii) (Z is OR. Only if both input edges to (Yare token-free, draw two tree edges, say (x, a) and (y, a) and set LXold. If x (or y) is not old, then do a+x (or y) and go to 2”. Note that a leaf of the tree T, is either old or not old. If a leaf is not old, it is immediately firable by the rule of the construction. Observe that if every leaf x is old Vol. 313, No. 4, pp. 219-231, Printed in Great Britain

April

1982

229

Kenji Onaga and Wai Kai Chen and if each old leaf x is coaleased onto internal node x, we get a token-free cycleberry containing node v. Moreover if every leaf is old, node v is led into a deadlock where there exist in T, two nodes x and y, each of whose firing requires the other’s firing and is prerequisite to v’s firing. Therefore when there is a token-free cycleberry containing v, there exists a firing precedence tree rooted on v, all of whose leaves are old, and hence v can never be brought to be firable.

QED

Proof of Lemma 2

By Lemma 1, no node in CB, can be brought to be firable and hence no edge in CB, obtains any token. Proof of Lemma 3 If no node of CB, fires, the token count of CB, remains the same. Let node x of CB, be fired and consider two cases. (i) x is AND, and has one input and two outputs in CB,: firing of x increases the token count of CB,. (ii) x is AND, and has one input and one output in CB, or x is OR: firing of x leaves the token count of CB. unchanged.

Proof of Lemma 4 Let v be non-firable and suppose no cycleberry containing v be token-free. We show v can be brought to be firable after appropriate node firings. Let Ho be a connected subgraph token-free with respect to the initial token distribution do such that starting from v token-free input edges are traced backward from non-firable nodes and added to Ho until old nodes, or AND-nodes with no token-free input or OR-nodes with at least one positive token input are met. Under the stated hypothesis Ho has at least one source node a, (node with no input) that is immediately firable in do. Otherwise Ho contains a token-free cycleberry. Let this node a0 be fired and denote the new token distribution by d’. Let H’ be the above-mentioned subgraph with respect to d’. H’ neither contains a0 nor other nodes not in Ho. Hence H’ is a proper subgraph of Ho. Since by Lemma 2 token-freeness of the cycleberry is invariant with respect to node firing. H’ inherits the same property of Ho, that is, there is at least one source node that is firable in d’. The process is iterated until H is reduced to a single node v. This means v is firable.

QED Proof of Lemma 5

Obvious by the calculation

of Step 2.

QED Proof of Lemma 6

Let f$’ be the firing number of node x after i-th scan. Let i = 0, f’:’ = 0 for any node z in CB, and consider the calculation of Step 2. (i) If z is AND in CB,, either fy’ + dt, or fy’+ dt, is zero and hence fy+” remains zero. (ii) IF z is OR in CB., both fi’+ dt,, and f’;” + d$ are zero and hence f^li+‘)remains zero. Repetition of the above for i never increases fz in CB, beyond zero. Conversely, suppose f” = 0 is produced by the algorithm. There are two cases to consider. (i) If v is AND, then at least one input to v, say (x, v), is token-free and ix = 0 as well. Journal of the Franklin Institute Pergamon Press Ltd. 230

Data Flow Analysis

of Program

Nets

(ii) If 11 is OR, then both two inputs, say (x, u) and (y, u) are token-free, and fX = fY = 0 as well. Repeated application of the above tracing of token-free edges results in a cycleberry containing v.

QED

Proof of Lemma I Observe that

d”,, d:, =

d”,, - 1 d”,, + 1

if x# v, z# v if z = v and v is AND if x = u

i d:, + d& = d”,, + d”,*- 1 if z = u and v is OR. We consider two cases. (i) z is AND. A

+d” (fX”l;+“kdO +l)=f^ fx + (d”,, li’= ix + d$ - ; i

j:+&,=

if zf v, xf v ifx=v ifz=v

Hence we have Min {{J + d:,, fi + di,} =

min (fX+ d%, jY + d&) = fz min(fX+d”,,-1, f,+d”,,-l)=fZ-1

if z# D if z=u

as was to be proved (ii) z is OR.

(f: + f;) + (d:, + 4,) =

(k + fJ + (d”,, + d;, + d”,) = fz (ix - 1 + f,) + (d”,, + 1 + d;,) = fz (ix + fY, + (d”,, + d;,) - 1 = fZ - 1

if z#v,x#u, yfv if x or y = v ifz=v

as was to be proved.

QED

Vol. 313, No. 4, pp. 21%231, Printed in Great Britain

April

1982

231