Title:
Effects of Pointers on Data Dependences
Effects of Pointers on Data Dependences
Authors
Orso, Alessandro
Sinha, Saurabh
Harrold, Mary Jean
Sinha, Saurabh
Harrold, Mary Jean
Authors
Advisors
Advisors
Associated Organizations
Organizational Unit
Series
Collections
Supplementary to
Permanent Link
Abstract
Data dependences, which relate statements that compute data value to
statements that use those values, are useful for automating a variety of
program-comprehension-related activities, such as reverse engineering,
impact analysis, and debugging. Unfortunately, data dependences are
difficult to compute and understand in the presence of commonly-used
language features such as pointers, arrays, and structures. To facilitate
the comprehension of data dependences in programs that use such features,
we define a technique for computing and classifying data dependences that
takes into account the complexities introduced by specific language
constructs. The classification that we present is finer-grained than
previously proposed classification. Moreover, unlike previous work, we
present empirical results that illustrate the distribution of data
dependences for a set of C subjects. We also present a potential application
for the proposed classification: program slicing. We propose a technique
that allows for computing slices based on data-dependence types. This
technique facilitates the use of slicing for understanding a program because
a user can either incrementally augment a slice by incorporating data
dependences based on their relevance, or focus on specific kinds of
dependences. Finally, we present a case study that shows how the incremental
computation of slices can (1) highlight subtle data dependences within a
program, and (2) provide useful information about those dependences.
Sponsor
Date Issued
2000
Extent
300900 bytes
Resource Type
Text
Resource Subtype
Technical Report