Part I: In the Beginning Introduction Preliminaries Part II: Deterministic Programs while Programs Recursive Programs Recursive Programs with Parameters Object-Oriented Programs Part III: Parallel Programs Disjoint Parallel Programs Parallel Programs with Shared Variables Parallel Programs with Synchronization Part IV: Nondeterministic and Distributed Programs Nondeterministic Programs Distributed Programs Fairness
"synopsis" may belong to another edition of this title.
Computer programs are an indispensable part of many of the systems we rely upon in our daily lives, and the proper functioning and safety of these systems is of paramount importance. The development of methods that ensure program correctness is therefore a key challenge for computer scientists.
This widely anticipated third edition of Verification of Sequential and Concurrent Programs provides a systematic exploration of one of the most common approaches to program verification, known as the "assertional" approach. Following the successful formula of previous editions, this approach is applied to deterministic and nondeterministic sequential programs of varying complexity, together with both parallel and distributed concurrent programs. The expanded content of this thorough new edition also includes coverage of the verification of object-oriented programs. For each class of programs, the authors introduce an operational semantics and proof systems for the verification of partial and total correctness, justified formally in corresponding soundness theorems. Case studies supplied throughout the book demonstrate the use of the proof systems to formally verify solutions to classical problems, such as sorting, manipulation of lists, producer/consumer and mutual exclusion.
Topics and Features:
This modern update of a classic, reader-friendly textbook is perfect for an introductory course on program verification for advanced undergraduate or graduate students, and may also be used as an introduction to operational semantics. Outlines for possible courses are suggested in the Preface to the book. This book is unique in addressing assertional verification of all essential classes of imperative programs: while programs, recursive programs, object-oriented programs, nondeterministic programs, parallel programs, and distributed programs.
"Specification and verification of programs is increasingly being taught to undergraduate and graduate computer science students. Courses along these lines enable students to understand and reason about programs as formal objects.
a ]this beautifully written and smoothly flowing textbook should serve as a fine candidate for teaching graduate-level and possibly upper-level undergraduate courses on, or with a component on, program verification. a ]the book is self-contained"
(Anish Arora, William Gasarcha (TM)s Book Review Column, SIGACT News)
"About this title" may belong to another edition of this title.