Principles of Abstract Interpretation
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.
Hardcover$85.00 X ISBN: 9780262044905 832 pp. | 7 in x 10 in 53
“This is a marvelous book that covers both the breadth and the depth of abstract interpretation. Along with definitions, theorems, and proofs, the book is packed with examples, illustrations, and exercises, including solutions to some of the exercises. I plan to use the book for a course on abstract interpretation.”
Professor of Computer Science, University of California, Los Angeles
“This monumental work by Patrick Cousot is a long-awaited book for the community of programming languages, program analysis, and verification. It is a must-read reference for all researchers and students who want to have an in-depth account of the beautiful theory of abstract interpretation”
Professor of Computer Science, University of Verona