Module : Constraint-Based Analysis
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.