Program dependence graph

From Wikipedia, the free encyclopedia
(Redirected from Program Dependence Graph)

In computer science, a Program Dependence Graph (PDG) is a representation of a program's control and data dependencies. It's a directed graph where nodes represent program statements, and edges represent dependencies between these statements. PDGs are useful in various program analysis tasks, including optimizations, debugging, and understanding program behavior.[1] These dependencies are used during dependence analysis in optimizing compilers to make transformations so that multiple cores are used, and parallelism is improved. [2]Nodes and edges in a PDG may have attributes associated with them, representing variables read from or written to, or the type of dependency they represent. PDGs are used in data flow analysis, slicing, optimization, debugging, and parallelization, providing insights into how program components interact and aiding in understanding and analyzing program behavior.[3]

See also[edit]

Dependency graph

References[edit]

  1. ^ Jeanne Ferrante; Ottenstein, Karl J.; Warren, Joe D. (July 1987). "The Program Dependence Graph and its Use in Optimization" (PDF). ACM Transactions on Programming Languages and Systems. 9 (3): 319–349. CiteSeerX 10.1.1.101.27. doi:10.1145/24039.24041. S2CID 505075.
  2. ^ Ferrante, J.; Ottenstein, K. J.; Warren, J. (1987). "The program dependence graph and its use in optimization". ACM Transactions on Programming Languages and Systems. 9 (3): 319–349. CiteSeerX 10.1.1.101.27. doi:10.1145/24039.24041. S2CID 505075.
  3. ^ Jeanne Ferrante; Ottenstein, Karl J.; Warren, Joe D. (July 1987). "The Program Dependence Graph and its Use in Optimization" (PDF). ACM Transactions on Programming Languages and Systems. 9 (3): 319–349. CiteSeerX 10.1.1.101.27. doi:10.1145/24039.24041. S2CID 505075.