../

2026-01-12

High Impact software bugs

Higher level goals of Program Analysis

  • Here Specification is any properties we want our program to have
  • For a moment let us consider the Program Analysis component to be a black box.
  • The goal of Program Analysis is checking if the program satisfies all the properties.
    • By seeing how well it satisfies the given properties we can gain some information about the program

Types of Program Analysis

Broadly there are two types based on if the program is executed or not

  • Static
    • Program is not executed
  • Dynamic
    • Program is executed

Soundness vs Completeness

These are properties of the Analyzer

  • Soundness is proving the absence of bugs
  • Completeness is proving the presence of errors

Static methods are sound but not complete Dynamic methods are complete but not sound