Module 7: Dataflow Analysis - Part I

[Video] [Slides]

Description:

This module delves into Dataflow Analysis – a popular type of static analysis widely used in compilers and software quality tools. It introduces the WHILE language and the control-flow graph representation of WHILE programs on which dataflow analyses operate. Two classic dataflow analyses are presented: Reaching Definitions Analysis and Very Busy Expressions Analysis. The similarities and differences of the two analyses are discussed.

Objectives:

  • Define and represent the result of a Dataflow Analysis using control-flow graphs and the WHILE language.
  • Understand the properties of Dataflow Analysis and list some of their applications in compilers and software quality tools.
  • Define the operations and abstract domain of Reaching Definitions Analysis and Very Busy Expressions Analysis.
  • Demonstrate how Reaching Definitions Analysis works on a program in the WHILE language.
  • Demonstrate how Very Busy Expressions Analysis works on a program in the WHILE language.