abstract interpretation
play

Abstract Interpretation Harry Xu CS 253/INF 212 Spring 2013 - PowerPoint PPT Presentation

Abstract Interpretation Harry Xu CS 253/INF 212 Spring 2013 Acknowledgements Many slides in this file were taken from the tutorial slides that Patrick Cousot used in VMCAI05 Abstract Interpretation A theory of sound approximation of


  1. Abstract Interpretation Harry Xu CS 253/INF 212 Spring 2013

  2. Acknowledgements Many slides in this file were taken from the tutorial slides that Patrick Cousot used in VMCAI’05

  3. Abstract Interpretation • A theory of sound approximation of the semantics of computer programs • A partial execution of a program which gains information about its semantics (e.g., control- flow, data-flow) without performing all the calculations • Establish a relationship between the concrete semantics and the abstract semantics

  4. More Formally

  5. Abstract Interpretation • A methodology to derive sound static analysis with varying precision – Correct by construction – Generic – Easy to fine-tune int a[1000]; int a[1000]; for (i = 0; i < 1000; i++) { for (i = 0; i < 1000; i++) { • Example a[i] = … ; // 0 <= i <= 999 a[i] = … ; // 0 <= i <= 999 safe operation } } a[i] = … ; // i = 1000; a[i] = … ; // i = 1000; buffer overrun

  6. Overview • Start with a formal specification of the program semantics (the concrete semantics) • Construct abstract semantic equations w.r.t. a parametric approximation scheme • Use general algorithms to solve the abstract semantic equations • Try-and-test various instantiations of the approximation scheme in order to find the best fit

  7. General Idea Concrete Semantics Collecting Semantics Tuners Partitioning Abstract Domain Iterative Abstract Resolution Semantics Algorithms Abstract Domain

  8. Which Collecting Semantics? • Buffer overrun, division by zero, arithmetic overflows: state properties • Deadlocks, un-initialized variables: finite trace properties • Loop termination: finite and infinite trace properties

  9. Fixpoint Approximation α o F o γ L 2 L 2 γ α L 1 L 1 F Theorem: lfp F ⊆ γ (lfp α o F o γ )

  10. Abstracting the Collecting Semantics • Find a Galois connection: γ ( ℘ ( Σ ), ⊆ ) ( Σ # , ≤ ) α • Find a function: α o F o γ ≤ F # Partitioning ➱ Abstract sets of environments

  11. Widening and Narrowing • Help the fixpoint iteration quickly converge and stabilize • Conceptually similar to join and meet in dataflow analysis

Recommend


More recommend