scientific article; zbMATH DE number 1042220
This book presents a self-contained introduction to formal reasoning about imperative programs. It is intended to help undergraduate computing science students to acquire an understanding and basic skills in this subject. A thorough study of this book should improve intuition and ability in imperative programming. The reader is taught how to prove properties of programs while developing the relevant mathematical background. The authors maintain that this can be done in an completely rigorous way -- a way that is not too difficult and too abstract. They base their introduction upon equational logic, i.e. the logic for substituting equals for equals. As they go along, they define the algebraic semantics of imperative progams with recourse to abstract machines. Equational axioms specify the effect of programs on such machines. Programming language features covered in this book are assignment, sequential composition, conditional, while-loop, procedure definition and procedure call. The corresponding equational axioms are used to prove the correctness of programs. Although equational logic may not cover all idiosyncrasies of imperative programs, it has some advantages. For a start, it seems not to scare of that much undergraduate students. But there are more technical points in its favour. It is simple; many problems are decidable that are not in more complex logics; there are efficient algorithms for deciding many of these problems; there are mature tools that embody many of these algorithms. The reader is assumed to be familiar with some imperative programming language, such as C, Pascal, Basic or MODULA2. Furthermore, knowledge of basic mathematics including mathematical induction and first-order logic is required. Other concepts are explained when the need arises. In this book, OBJ, a language especially designed for algebraic semantics, is used to implement equational logic associated with imperative programs. It is introduced in the process. Actually, every OBJ program is an equational theory. Every OBJ computation proves some property about such a theory. With the prerequisites met, any reader should be able to get the gist of algebraic semantics of imperative programs via OBJ as developed in this exquisite textbook.
- scientific article; zbMATH DE number 2186295
- scientific article; zbMATH DE number 3972168
- scientific article; zbMATH DE number 3967883
- scientific article; zbMATH DE number 3892570
- An algebraic approach to semantics of programming languages
- Static Analysis
- scientific article; zbMATH DE number 1207155
- Algebraic imperative specifications
- scientific article; zbMATH DE number 4078767
- Algorithmic completeness of imperative programming languages
- A rewriting logic approach to operational semantics
- Algebraic translations, correctness and algebraic compiler construction
- A hidden agenda
- A hidden Herbrand theorem: Combining the object and logic paradigms
- Blending under deconstruction. The roles of logic, ontology, and cognition in computational concept invention
- A rewriting logic approach to operational semantics (extended abstract)
- Closures in Binary Partial Algebras
- On formal and cognitive semantics for semantic computing
- Matching logic: an alternative to Hoare/Floyd logic
- A lightweight approach to datatype-generic rewriting
- The rewriting logic semantics project: a progress report
- Action Algebras and Model Algebras in Denotational Semantics
- A Step-indexed Semantics of Imperative Objects
- Aliasing Control in an Imperative Pure Calculus
- On the interpretation of mathematical entities in the formalisation of programming and modelling languages
- scientific article; zbMATH DE number 4078767 (Why is no real title available?)
- scientific article; zbMATH DE number 4088901 (Why is no real title available?)
- The rewriting logic semantics project: a progress report
- scientific article; zbMATH DE number 3997138 (Why is no real title available?)
- A Proof Score Approach to Formal Verification of an Imperative Programming Language Compiler
- Building Specifications in the Event-B Institution
- Programming language semantics: It’s easy as 1,2,3
- An overview of compositional translations
- Hybrid many-sorted modal logic with nominal terms
- Training as inference: using hybrid modal logic for specifying neural networks
- The rewriting logic semantics project
- Reducibility of operation symbols in term rewriting systems and its application to behavioral specifications
This page was built for publication:
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4346205)