Papers presented at the Marktoberdorf Summer School on Theoretical Foundations of Programming Methodology, organized under the auspices of the Technical University Münich and sponsored by the NATO Scientific Affairs Division, Germany, 1981
There are several theories of programming. The first usable theory, often called "Hoare's Logic", is still probably the most widely known. In it, a specification is a pair of predicates: a precondition and postcondition (these and all technical terms will be defined in due course). Another popular and closely related theory by Dijkstra uses the weakest precondition predicate transformer, which is a function from programs and postconditions to preconditions. lones's Vienna Development Method has been used to advantage in some industries; in it, a specification is a pair of predicates (as in Hoare's Logic), but the second predicate is a relation. Temporal Logic is yet another formalism that introduces some special operators and quantifiers to describe some aspects of computation. The theory in this book is simpler than any of those just mentioned. In it, a specification is just a boolean expression. Refinement is just ordinary implication. This theory is also more general than those just mentioned, applying to both terminating and nonterminating computation, to both sequential and parallel computation, to both stand-alone and interactive computation. And it includes time bounds, both for algorithm classification and for tightly constrained real-time applications.
The second part of this Handbook presents a choice of material on the theory of automata and rewriting systems, the foundations of modern programming languages, logics for program specification and verification, and some chapters on the theoretic modelling of advanced information processing.
In software engineering there is a growing need for formalization as a basis for developing powerful computer assisted methods. This volume contains seven extensive lectures prepared for a series of IFIP seminars on the Formal Description of Programming Concepts. The authors are experts in their fields and have contributed substantially to the state of the art in numerous publications. The lectures cover a wide range in the theoretical foundations of programming and give an up-to-date account of the semantic models and the related tools which have been developed in order to allow a rigorous discussion of the problems met in the construction of correct programs. In particular, methods for the specification and transformation of programs are considered in detail. One lecture is devoted to the formalization of concurrency and distributed systems and reflects their great importance in programming. Further topics are the verification of programs and the use of sophisticated type systems in programming. This compendium on the theoretical foundations of programming is also suitable as a textbook for special seminars on different aspects of this broad subject.
This volume is number five in the 11-volume Handbook of the History of Logic. It covers the first 50 years of the development of mathematical logic in the 20th century, and concentrates on the achievements of the great names of the period--Russell, Post, Gödel, Tarski, Church, and the like. This was the period in which mathematical logic gave mature expression to its four main parts: set theory, model theory, proof theory and recursion theory. Collectively, this work ranks as one of the greatest achievements of our intellectual history. Written by leading researchers in the field, both this volume and the Handbook as a whole are definitive reference tools for senior undergraduates, graduate students and researchers in the history of logic, the history of philosophy, and any discipline, such as mathematics, computer science, and artificial intelligence, for whom the historical background of his or her work is a salient consideration.• The entire range of modal logic is covered• Serves as a singular contribution to the intellectual history of the 20th century• Contains the latest scholarly discoveries and interpretative insights
Elements of Programming provides a different understanding of programming than is presented elsewhere. Its major premise is that practical programming, like other areas of science and engineering, must be based on a solid mathematical foundation. This book shows that algorithms implemented in a real programming language, such as C++, can operate in the most general mathematical setting. For example, the fast exponentiation algorithm is defined to work with any associative operation. Using abstract algorithms leads to efficient, reliable, secure, and economical software.
The Person 1 Boris Abramovich Trakhtenbrot ( ) - his Hebrew given name is Boaz ( ) - is universally admired as a founding - ther and long-standing pillar of the discipline of computer science. He is the ?eld's preeminent distinguished researcher and a most illustrious trailblazer and disseminator. He is unmatched in combining farsighted vision, unfaltering c- mitment, masterful command of the ?eld, technical virtuosity, aesthetic expr- sion, eloquent clarity, and creative vigor with humility and devotion to students and colleagues. For over half a century, Trakhtenbrot has been making seminal contributions to virtually all of the central aspects of theoretical computer science, inaugur- ing numerous new areas of investigation. He has displayed an almost prophetic ability to foresee directions that are destined to take center stage, a decade or morebeforeanyoneelsetakesnotice.Hehasneverbeentempted toslowdownor limithisresearchtoareasofendeavorinwhichhehasalreadyearnedrecognition and honor. Rather, he continues to probe the limits and position himself at the vanguard of a rapidly developing ?eld, while remaining, as always, unassuming and open-minded.