Module 10: Constraint-Based Analysis

[Video] [Slides]

Description:

In this module, you’ll learn about Constraint-Based Analysis, a popular approach to program analysis, and its benefits over the approaches studied earlier. You’ll learn a constraint language called Datalog and how it is used to specify intra-procedural and inter-procedural dataflow analyses. The module will also describe tradeoffs made in context-insensitive and context-sensitive inter-procedural analysis. In the end, you’ll learn about other constraint languages, SAT and SMT, and their applications to program analysis.

Objectives:

  • Understand Constraint-Based Analysis and its benefits over other approaches.
  • Understand the syntax and semantics of the Datalog constraint language.
  • Use the Datalog constraint language to specify intra-procedural and inter-procedural dataflow analyses.
  • Understand Context-Insensitive and Context-Sensitive inter-procedural dataflow analysis and their challenges and solutions.
  • Understand the constraint languages SAT and SMT through applications to program analysis.