
doi: 10.1007/bfb0032756
The power of any parallelizing compiler is limited by its program analyzers. Finding the right abstraction for program analysis is crucial. The various existing data dependence abstractions can be viewed simply as approximations of the others. Moreover, data dependences have common structures, which can be exhibited by "abstraction of the structure of run-time computations" (the leading idea of abstract interpretation [1]). We apply the classical framework of abstract interpretation, defined in [2], to data dependence analysis. We show that data dependence abstractions (simple data dependence, dependence levels, direction vectors, distance vectors, iteration data dependence graph, expanded data dependence graph, statement data dependence graph) and data-flow dependence abstractions (defined in [3]) are abstract interpretations of the program semantics. The standard collecting semantics is defined from the small step operational trace semantics of a subset of a sequential imperative language. By successive Galois connection based abstractions, data dependences are designed as abstract semantics, that approximate the standard collecting semantics. Then the hierarchy of data dependences is constructed as a part of the lattice of abstract interpretations. The correspondence between concrete and abstract properties is established by a pair of functions that is a Galois connection. The Galois connection formalizes the loss of information of the abstraction process. Moreover, the composition of Galois connections is a Galois connection and this property allows for a compositional design of successive approximations. This formalization of the data dependence analysis corresponds to a shift from syntax, of which most of the existing data dependence analyses are based on, to semantics. This could allow the application of the achievements of the program analysis community to dependence analysis.
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 5 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
