## Information-flow and data-flow analysis of while-programs (1985)

Venue: | ACM Transactions on Programming Languages and Systems |

Citations: | 71 - 0 self |

### BibTeX

@ARTICLE{Bergeretti85information-flowand,

author = {Jean-franc Bergeretti and Bernard A. Carry},

title = {Information-flow and data-flow analysis of while-programs},

journal = {ACM Transactions on Programming Languages and Systems},

year = {1985},

volume = {7},

pages = {37--61}

}

### Years of Citing Articles

### OpenURL

### Abstract

Until recently, information-flow analysis has been used primarily to verify that information trans-mission between program variables cannot violate security requirements. Here, the notion of infor-mation flow is explored as an aid to program development and validation. Information-flow relations are presented for while-programs, which identify those program statements whose execution may cause information to be transmitted from or to particular input, internal, or output values. It is shown with examples how these flow relations can be helpful in writing, testing, and updating programs; they also usefully extend the class of errors which can be detected automatically in the “static analysis ” of a program.

### Citations

2452 |
The Design and Analysis of Computer Algorithms
- Aho, Hopcroft, et al.
- 1974
(Show Context)
Citation Context ... 4 DA or v is stable with respect to S. The stability index /l(e) of a ACM Transactions on Programming Languages and Systems, Vol. 7, No. 1, January 1985.s56 l J.-F. Bergeretti and B. A. Cart% Input: =-=(1)-=- the set DA of variables defined in a loop body A; (2) indegree, an integer array in which, for each variable u in DA, idegree[u] is the number of predecessors of u on I?,,; (3) for each variable in D... |

404 | Certification of programs for secure information flow - Denning, Denning - 1977 |

375 |
Gaussian elimination is not optimal
- STRASSEN
- 1969
(Show Context)
Citation Context ...lgorithms are both of cubic worst case asymptotic time complexity, It would be possible to use algorithms with slightly lower time bounds: in particular, products could be formed by Strassen’s method =-=[21]-=-, and closures could be obtained for instance by Munro’s algorithm [ 171, which embodies Strassen’s method of multiplication. However, because the relations usually contain only a very small number of... |

311 | A unified approach to global program optimization - Kildall - 1973 |

278 |
Flow Analysis of Computer Programs
- Hecht
- 1977
(Show Context)
Citation Context ...-detection techniques with those based on data-flow analysis [9, 10, 131. First, the relations e” and 0 are easily interpreted in terms of “reaching definitions,” as presented, for instance, by Hecht =-=[12]-=- and Kennedy [15]. Let us suppose that at the entry point of a program, we have an initial definition of each of its variables (with any variable which does not belong to v’ being assigned an “undefin... |

200 | A theorem on boolean matrices
- Warshall
- 1962
(Show Context)
Citation Context ...he relations are usually very sparse. Products of relations are constructed by the “classical” Boolean matrix multiplication algorithm, and transitive closures are obtained using Warshall’s algorithm =-=[22]-=-; these algorithms are both of cubic worst case asymptotic time complexity, It would be possible to use algorithms with slightly lower time bounds: in particular, products could be formed by Strassen’... |

102 |
A Program Data Flow Analysis Procedure
- Allen, Cocke
- 1976
(Show Context)
Citation Context ...and B. A. Cart% Input: (1) the set DA of variables defined in a loop body A; (2) indegree, an integer array in which, for each variable u in DA, idegree[u] is the number of predecessors of u on I?,,; =-=(3)-=- for each variable in DA, the set of its successors on I&. Output: (1) stable, a Boolean array in which, for each variable u in DA, stab.!e[u] = true if u is stable in the loop with body A and stabk[u... |

76 | A fast and usually linear algorithm for global analysis - Graham, Wegman - 1976 |

70 | E.S.: Information transmission in sequential programs - Cohen - 1978 |

69 | An axiomatic approach to information flow in programs - Andrews, Reitman - 1980 |

56 |
A survey of data flow analysis techniques
- Kennedy
- 1981
(Show Context)
Citation Context ...ques with those based on data-flow analysis [9, 10, 131. First, the relations e” and 0 are easily interpreted in terms of “reaching definitions,” as presented, for instance, by Hecht [12] and Kennedy =-=[15]-=-. Let us suppose that at the entry point of a program, we have an initial definition of each of its variables (with any variable which does not belong to v’ being assigned an “undefined value”). Then ... |

54 |
Graphs and Networks
- Carré
- 1979
(Show Context)
Citation Context ...vely. (Stable nodes, with their indices, can easily be determined using the algorithm of Figure 10, which is a modified form of the algorithm commonly employed for finding node rank in acyclic graphs =-=[5]-=-.) In programming terms, the notion of stability has the following significance. Let us suppose that for some set of input values to S, some number h > 0 of iterations are performed, and for each vari... |

44 | Data flow analysis in software reliability - Fosdick - 1976 |

27 | Efficient determination of the transitive closure of a directed graph - Munro - 1971 |

23 | Detection of data flow anomaly through program instrumentation - Huang - 1979 |

20 |
Qualified dataflow analysis
- Holley, Rosen
- 1980
(Show Context)
Citation Context ...1. Furthermore, our strategy for constructing flow relations, in traversing a parse tree, bears some resemblance to the data-flow methods based on graph grammars [8] and “highlevel dataflow analysis” =-=[20]-=-. It is therefore instructive to relate these methods and, in particular, to compare the capabilities of our error-detection techniques with those based on data-flow analysis [9, 10, 131. First, the r... |

3 |
Using Data Flow Tools in Software Engineering
- Osterweil
- 1981
(Show Context)
Citation Context ...is currently much interest in extending program flow analysis methods, such as data-flow analysis, to enable these methods to detect a larger class of errors than they can uncover at the present time =-=[18]-=-. This paper describes some information-flow relations that are easily constructed for a while-program and that are helpful both in program testing and in checking the consistency of assertions with a... |

2 |
Graph grammars and global program flow analysis
- Farrow, Kennedy, et al.
- 1975
(Show Context)
Citation Context ...al data-flow analysis [3, 10-12, 15,161. Furthermore, our strategy for constructing flow relations, in traversing a parse tree, bears some resemblance to the data-flow methods based on graph grammars =-=[8]-=- and “highlevel dataflow analysis” [20]. It is therefore instructive to relate these methods and, in particular, to compare the capabilities of our error-detection techniques with those based on data-... |

1 |
The Theory of Parsing, Translation and Compiling, Vol. 2: Compiling
- AHO, ULLMAN
- 1973
(Show Context)
Citation Context ...comprehensible (and possibly more efficient). The detection and “hoisting” of assignment statements whose (expression) parts are stable of index 0 is well known in the context of optimizing compilers =-=[2]-=-. The techniques described here immediately reveal all the statements which could be treated in this way. 4.5 A Comparison with Data-Flow Analysis The information given by the I%, X-, and p-relations ... |

1 |
Validation and global optimization of programs
- FOSDICK, OSTERWEIL
(Show Context)
Citation Context ...ial definition of v reaches the statement with (expression) part e. Thus the relations 0 and e” indicate the “upward-exposed uses” of program variables; or in the terminology of Fosdick and Osterweil =-=[9]-=-, for each variable v 4 v’ the condition v 0 e reveals a data-flow error in evaluating e, while the condition v e”e indicates a “significant” data-flow error. The X-relation is more difficult to inter... |

1 |
Programmers use slicing when debugging
- WERSER
- 1982
(Show Context)
Citation Context .... the exported values of particular program variables are obtained. Our notion of a partial statement appears to be very similar to that of a “program slice,” which was presented informally by Werser =-=[23]-=-. The notion of a partial statement leads to a further useful notion, of “interdependence” between program variables: we say that two variables u and v ’ are independent in a program statement S if AC... |

1 |
Algorithms for adaptive linear prediction
- WITTEN
- 1980
(Show Context)
Citation Context ...remely sparse, the running times have been found to be quite acceptable: for instance, in a Pascal implementation on a PDP-11/44, the information-flow analysis of the covariance procedure 2 of Witten =-=[24]-=-, which has 14 variables and 50 statements, of which 15 are for-statements requiring closure computations, took 8 seconds. With regard to space complexity, in the worst case the space required to stor... |