Difference between revisions of "Book/Principles of Abstract Interpretation"
Line 19: | Line 19: | ||
The book covers all necessary computer science and mathematical concepts—including most of the logic, order, linear, fixpoint, and discrete mathematics frequently used in computer science—in separate chapters before they are used in the text. Each chapter offers exercises and selected solutions. Chapter topics include syntax, parsing, trace semantics, properties and their abstraction, fixpoints and their abstractions, reachability semantics, abstract domain and abstract interpreter, specification and verification, effective fixpoint approximation, relational static analysis, and symbolic static analysis. The main applications covered include program semantics, program specification and verification, program dynamic and static analysis of numerical properties and of such symbolic properties as dataflow analysis, software model checking, pointer analysis, dependency, and typing (both for forward and backward analysis), and their combinations. Principles of Abstract Interpretation is suitable for classroom use at the graduate level and as a reference for researchers and practitioners. | The book covers all necessary computer science and mathematical concepts—including most of the logic, order, linear, fixpoint, and discrete mathematics frequently used in computer science—in separate chapters before they are used in the text. Each chapter offers exercises and selected solutions. Chapter topics include syntax, parsing, trace semantics, properties and their abstraction, fixpoints and their abstractions, reachability semantics, abstract domain and abstract interpreter, specification and verification, effective fixpoint approximation, relational static analysis, and symbolic static analysis. The main applications covered include program semantics, program specification and verification, program dynamic and static analysis of numerical properties and of such symbolic properties as dataflow analysis, software model checking, pointer analysis, dependency, and typing (both for forward and backward analysis), and their combinations. Principles of Abstract Interpretation is suitable for classroom use at the graduate level and as a reference for researchers and practitioners. | ||
== | ==The Seminal Paper on Abstract Intepretation== | ||
The seminal paper on [[Abstract Interpretation]] is here<ref>{{:Paper/Abstract Interpretation}}</ref>. | The seminal paper on [[Abstract Interpretation]] is here<ref>{{:Paper/Abstract Interpretation}}</ref>. | ||
Revision as of 04:31, 4 January 2022
Cousot, Patrick (Sep 2021). Principles of Abstract Interpretation. local page: ACM Press.
Summary
Introduction to abstract interpretation, with examples of applications to the semantics, specification, verification, and static analysis of computer programs.
Formal methods are mathematically rigorous techniques for the specification, development, manipulation, and verification of safe, robust, and secure software and hardware systems. Abstract interpretation is a unifying theory of formal methods that proposes a general methodology for proving the correctness of computing systems, based on their semantics. The concepts of abstract interpretation underlie such software tools as compilers, type systems, and security protocol analyzers. This book provides an introduction to the theory and practice of abstract interpretation, offering examples of applications to semantics, specification, verification, and static analysis of programming languages with emphasis on calculational design.
The book covers all necessary computer science and mathematical concepts—including most of the logic, order, linear, fixpoint, and discrete mathematics frequently used in computer science—in separate chapters before they are used in the text. Each chapter offers exercises and selected solutions. Chapter topics include syntax, parsing, trace semantics, properties and their abstraction, fixpoints and their abstractions, reachability semantics, abstract domain and abstract interpreter, specification and verification, effective fixpoint approximation, relational static analysis, and symbolic static analysis. The main applications covered include program semantics, program specification and verification, program dynamic and static analysis of numerical properties and of such symbolic properties as dataflow analysis, software model checking, pointer analysis, dependency, and typing (both for forward and backward analysis), and their combinations. Principles of Abstract Interpretation is suitable for classroom use at the graduate level and as a reference for researchers and practitioners.
The Seminal Paper on Abstract Intepretation
The seminal paper on Abstract Interpretation is here[1].
Table of Contents
- Introduction
- Abstract Interpretation and Is Main Applications
- Basic Set Theory
- Syntax, Semantics, Properties, and Static Analysis of Expressions
- Syntax
- Syntax
- Parsing
- Trace Semantics
- Structural Deductive Stateless Prefix Trace Semantics
- Maximal Trace Semantics
- Properties and Their Abstractions
- Program Properties
- Undecideability and Rice Theorem
- Posets, Lattices, and Complete Lattices
- Galois Connections and Abstraction
- Relational and Transformer Semantics
- Topology
- Safety and Liveness Trace Properties
- Fixpoints and Their Abstractions
- Fixpoints
- Fixpoint, Deductive, Inductive, Structural, Coinductive, and Bi-inductive Definitions
- Structural Fixpoint Prefix and Maximal Trace Semantics
- Fixpoint Abstraction
- Reachability Semantics
- Structural Forward Reachability Semantics
- Calculational Design of the Forward Reachability Semantics
- Abstract Domain and Abstract Interpreter
- Abstract Domain and Abstract Structural Semantics
- Chaotic Iterations
- Abstract Equational Semantics
- Specification and Verification
- Fixpoint Induction
- Abstract Reachability / Invairiance / Safety Verification Semantics
- Hoare Logic
- Cartesian Static Analysis
- Abstraction
- Abstract Cartesian Semantics
- Reduction
- Basic Number Theory
- Cartesian Cogruence Analysis
- Dynamic Interval Analysis
- Static Interval Analysis
- Effective Fixpoint Approximation
- Fixpoint Approximation by Extrapolation and Interpolation
- Fixpoint Checking
- Reduced Product
- Relational Static Analysis
- Basic Linear Algebra
- Linear Equality Analysis
- Graphs
- Zone and Octagon Analysis
- Symbolic Static Analysis
- Dataflow Analysis
- Stateful Prefix Trace Semantics
- Transition Semantics
- Software Model Checking
- Flow-Intensive Static Analysis
- Points-To Analysis
- Dependency Analysis
- The Herbrand Abstract Domain of Symbolic Terms
- Typing
- Backward Static Analysis
- Backward Accessibility Semantics
- Reduced Forward-Backward Analysis
- Sound Static Analysis Tools
- Semantic Soundness, Completeness, and Definedness
- Static Analysis Tools
- Conclusion
- Conclusion
- Bibliography
- Author Index
- Index
- Symbol Index
- Project Index
- List of Figures
References
- ↑ Cousot, Patrick; Cousot, Radhia (1977). Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints (PDF). 4th POPL. local page: ACM Press. p. 238-252.