You may have to Search all our reviewed books and magazines, click the sign up button below to create a free account.
Written with graduate and advanced undergraduate students in mind, this textbook introduces computational logic from the foundations of first-order logic to state-of-the-art decision procedures for arithmetic, data structures, and combination theories. The textbook also presents a logical approach to engineering correct software. Verification exercises are given to develop the reader's facility in specifying and verifying software using logic. The treatment of verification concludes with an introduction to the static analysis of software, an important component of modern verification systems. The final chapter outlines courses of further study.
Reactive systems are computing systems which are interactive, such as real-time systems, operating systems, concurrent systems, control systems, etc. They are among the most difficult computing systems to program. Temporal logic is a formal tool/language which yields excellent results in specifying reactive systems. This volume, the first of two, subtitled Specification, has a self-contained introduction to temporal logic and, more important, an introduction to the computational model for reactive programs, developed by Zohar Manna and Amir Pnueli of Stanford University and the Weizmann Institute of Science, Israel, respectively.
This festschrift volume constitutes a unique tribute to Zohar Manna on the occasion of his 64th birthday. Like the scientific work of Zohar Manna, the 32 research articles span the entire scope of the logical half of computer science. Also included is a paean to Zohar Manna by the volume editor. The articles presented are devoted to the theory of computing, program semantics, logics of programs, temporal logic, automated deduction, decision procedures, model checking, concurrent systems, reactive systems, hardware and software verification, testing, software engineering, requirements specification, and program synthesis.
This monograph deals with aspects of the computer programming process that involve techniques derived from mathematical logic. The author focuses on proving that a given program produces the intended result whenever it halts, that a given program will eventually halt, that a given program is partially correct and terminates, and that a system of rewriting rules always halts. Also, the author describes the intermediate behavior of a given program, and discusses constructing a program to meet a given specification.
With the objective of making into a science the art of verifying computer programs (debugging), the author addresses both practical and theoretical aspects of the process. A classic of sequential program verification, this volume has been translated into almost a dozen other languages and is much in demand among graduate and advanced undergraduate computer science students. Subjects include computability (with discussions of finite automata and Turing machines); predicate calculus (basic notions, natural deduction, and the resolution method); verification of programs (both flowchart and algol-like programs); flowchart schemas (basic notions, decision problems, formalization in predicate calculus, and translation programs); and the fixpoint theory of programs (functions and functionals, recursive programs, and verification programs). The treamtent is self-contained, and each chapter concludes with bibliographic remarks, references, and problems.
This book is about the verification of reactive systems. A reactive system is a system that maintains an ongoing interaction with its environment, as opposed to computing some final value on termination. The family of reactive systems includes many classes of programs whose correct and reliable construction is con sidered to be particularly challenging, including concurrent programs, embedded and process control programs, and operating systems. Typical examples of such systems are an air traffic control system, programs controlling mechanical devices such as a train, or perpetually ongoing processes such as a nuclear reactor. With the expanding use of computers in safety-critical areas, wher...
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 pr...
None
A man may imagine he understands something, but still not understand anything in the way that he ought to. (Paul of Tarsus, 1 Corinthians 8:2) Calling this a ‘practical theory’ may require some explanation. Theory and practice are often thought of as two di?erent worlds, governed bydi?erentideals,principles, andlaws.DavidLorgeParnas, forinstance,who hascontributedmuchtoourtheoreticalunderstandingofsoftwareengineering and also to sound use of theory in the practice of it, likes to point out that ‘theoretically’ is synonymous to ‘not really’. In applied mathematics the goal is to discover useful connections between these two worlds. My thesis is that in software engineering this tw...
This book constitutes the refereed proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2001. The 36 revised full papers presented together with an invited contribution were carefully reviewed and selected from a total of 125 submissions. The papers are organized in sections on symbolic verification, infinite state systems - deduction and abstraction, application of model checking techniques, timed and probabilistic systems, hardware - design and verification, software verification, testing - techniques and tools, implementation techniques, semantics and compositional verification, logics and model checking, and ETAPS tool demonstration.