Principles of Abstract Interpretation
- Length: 832 pages
- Edition: 1
- Language: English
- Publisher: The MIT Press
- Publication Date: 2021-09-21
- ISBN-10: 0262044900
- ISBN-13: 9780262044905
- Sales Rank: #68698 (See Top 100 Books)
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.
Cover Title Page Copyright Page Dedication Table of Contents I: Introduction 1. Abstract Interpretation and Its Main Applications 2. Basic Set Theory 3. Syntax, Semantics, Properties, and Static Analysis of Expressions II: Syntax 4. Syntax 5. Parsing III: Trace Semantics 6. Structural Deductive Stateless Prefix Trace Semantics 7. Maximal Trace Semantics IV: Properties and Their Abstractions 8. Program Properties 9. Undecidability and Rice Theorem 10. Posets, Lattices, and Complete Lattices 11. Galois Connections and Abstraction 12. Relational and Transformer Semantics 13. Topology 14. Safety and Liveness Trace Properties V: Fixpoints and Their Abstractions 15. Fixpoints 16. Fixpoint, Deductive, Inductive, Structural, Coinductive, and Bi-inductive Definitions 17. Structural Fixpoint Prefix and Maximal Trace Semantics 18. Fixpoint Abstraction 193 VI: Reachability Semantics 19. Structural Forward Reachability Semantics 20. Calculational Design of the Forward Reachability Semantics VII: Abstract Domain and Abstract Interpreter 21. Abstract Domain and Abstract Structural Semantics 22. Chaotic Iterations 23. Abstract Equational Semantics VIII: Specification and Verification 24. Fixpoint Induction 25. Abstract Reachability / Invariance / Safety Verification Semantics 26. Hoare Logic IX: Cartesian Static Analysis 27. Abstraction 28. Abstract Cartesian Semantics 29. Reduction 30. Basic Number Theory 31. Cartesian Congruence Analysis 32. Dynamic Interval Analysis 33. Static Interval Analysis X: Effective Fixpoint Approximation 34. Fixpoint Approximation by Extrapolation and Interpolation 35. Fixpoint Checking 36. Reduced Product XI: Relational Static Analysis 37. Basic Linear Algebra 38. Linear Equality Analysis 39. Graphs 40. Zone and Octagon Analysis XII: Symbolic Static Analysis 41. Dataflow Analysis 42. Stateful Prefix Trace Semantics 43. Transition Semantics 44. Software Model Checking 45. Flow-Insensitive Static Analysis 46. Points-To Analysis 47. Dependency Analysis 48. The Herbrand Abstract Domain of Symbolic Terms 49. Typing XIII: Backward Static Analysis 50. Backward Accessibility Semantics 51. Reduced Forward—Backward Analysis XIV: Sound Static Analysis Tools 52. Semantic Soundness, Completeness, and Definedness 53. Static Analysis Tools XV: Conclusion 54. Conclusion Bibliography Author Index Index Symbol Index Project Index
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.