Computer programs are becoming more and more part of systems that we use to rely on in our daily lives. The proper functioning and safety of these systems is of paramount importance. A major challenger for computer science is to develop methods that ensure program correctness. This textbook provides a structured introduction to program verification using an assertional approach - so named because it relies on the use of assertions that are attached to program control points. Sequential programs in the form of deterministic and nondeterministic programs, and concurrent programs in the form of parallel and distributed programs are considered within the context of their partial and total correctness. The use of these proof systems is demonstrated with the help of case studies. In particular solutions to classical problems such as mutual exclusion are formally verified. Each chapter concludes with exercises and bibliographic remarks for further reading. As a result, this text will be appropriate for either an introductory course on program verification for upper division of undergraduate studies or for graduate studies. It can also be used as an introduction to operational semantics. Outlines of possible courses are presented in the preface of the book.
"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.Review:
"The Third Edition is an excellent new version of a valuable book. Enhanced with new material on recursion and object-oriented programs, this book now covers methods for verifying sequential, object-oriented, and concurrent programs using well-chosen sample programming languages that highlight fundamental issues and avoid incidental complications. With growing challenges today to produce correct software systems for the future, this book lets students wisely use a few months now to master concepts that will last them a lifetime." (John C. Mitchell, Stanford University)
"Verification of programs is the Holy Grail of Computer Science. This book makes its pursuit seem both pleasant and worthwhile. Its unique strength lies in the way the authors have deconstructed the apparently complex subject such that each piece carries exactly one idea. The beauty of the presentation extends from the overall structure of the book to the individual explanations, definitions and proofs." (Andreas Podelski, University of Freiburg)
"Program verification became an interesting research topic of computing science about forty years ago. Research literature on this topic has grown quickly in accordance with rapid development of various programming paradigms. Therefore it has been a challenge to university lecturers on program verification how to carefully select an easy but comprehensive approach, which can fit in with most programming paradigms and can be taught in a systematic way. The publication of this book is an answer to the challenge, and to my knowledge quite many university lecturers have been influenced by the earlier editions of this book if not chosen them as textbook. Given that the third edition includes verification of object-oriented programs – the most fashionable programming paradigm, and presents it in a way coherent with the approach adopted by the earlier ones, we can expect a further impact of the new edition on university teachings." (Zhou Chaochen, Chinese Academy of Sciences, Beijing)
"About this title" may belong to another edition of this title.
Book Description Secaucus, New Jersey, U.S.A.: Springer Verlag, 1997. Hardcover. Book Condition: New. No Jacket. 2nd Edition...... 2694 Language: eng Language: eng Language: eng Language: eng Language: eng Language: eng. Bookseller Inventory # CC95
Book Description Springer, 1997. Hardcover. Book Condition: New. 2nd. This item is printed on demand. Bookseller Inventory # DADAX0387948961