Skip to main content

Program Dependencies

  • Chapter
  • First Online:
Software Verification and Analysis

Abstract:

Program dependencies model the ways program entities – statements, expressions, variables, control flow, etc. – interact with each other. Therefore, they are explicitly or implicitly the basis of static (source-based) and dynamic (execution-based) program analysis. The basic two are the Control and Data Dependencies. The former accounts for the selection of program statements for execution, while the latter models data exchange between program statements. Both are binary relations on the set of nodes in the flowgraph but they can be used as a basis to define other heterogeneous relations, e.g., between statements and variables. The discussion is illustrated by the actual results produced by STAD 4.0.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    This problem is typical for structural (white-box) program testing, see Chapter 8.

  2. 2.

    Attraction is often referred to as postdominance or reverse dominance. Since one word is preferred to two, and postdominance might be construed as A counterpart of nonexisting predominance, attraction seems to be A better choice as it also has A programming appeal.

  3. 3.

    We say “may” for in some cases A decision node may always evaluate to A constant, e.g. if 3>2 then …else..

  4. 4.

    This is also known as A definition-use chain, cf [2] and under such name is used in testing, see Chapter 8.

References

  1. L.J.Ferrante et al., The program dependence graph and its use in optimization,ACM Transactions on Programming Languages and Systems,9(3),319-349,1985

    Article  MathSciNet  Google Scholar 

  2. M.S.Hecht, Flow Analysis of Computer Programs, North Holland, New York, NY, 1979.

    Google Scholar 

  3. A.V.Aho, R. Sethi, J.D.Ullman.,Compilers, Principles, Techniques and Tools,Reading M A, Addsion-Wesley 1986.

    Google Scholar 

  4. T. Lengauer,R.E. Tarjan, A fast algorithm for finding dominators in a flowgraph, Transactions on Programming Languages and Systems,1,121-145,1979.

    Article  MATH  Google Scholar 

  5. E. Nuutila, Efficient transitive closure computation in large digraphs,Acta Polytechnica Scandinavica, Mathematics and Computing in Engineering Series No. 74, Helsinki 1995, 124 pages. Published by the Finnish Academy of Technology. ISBN 951-666-451-2, ISSN 1237-2404, UDC 681.3.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag London Limited

About this chapter

Cite this chapter

Laski, J., Stanley, W. (2009). Program Dependencies. In: Software Verification and Analysis. Springer, London. https://doi.org/10.1007/978-1-84882-240-5_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-84882-240-5_6

  • Published:

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-84882-239-9

  • Online ISBN: 978-1-84882-240-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics