Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Toward compiler implementation correctness proofs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
Parsing theory. Vol. 1: languages and parsing
Parsing theory. Vol. 1: languages and parsing
Predicate calculus and program semantics
Predicate calculus and program semantics
Action semantics
Normal form approach to compiler design
Acta Informatica
VLISP: a verified implementation of Scheme
Lisp and Symbolic Computation
Piton: a mechanically verified assembly-level language
Piton: a mechanically verified assembly-level language
Verification of sequential and concurrent programs (2nd ed.)
Verification of sequential and concurrent programs (2nd ed.)
Advanced compiler design and implementation
Advanced compiler design and implementation
An axiomatic basis for computer programming
Communications of the ACM
The Science of Programming
Mathematical Theory of Program Correctness
Mathematical Theory of Program Correctness
A Discipline of Programming
Modular Compiler Verification: A Refinement-Algebraic Approach Advocating Stepwise Abstraction
Modular Compiler Verification: A Refinement-Algebraic Approach Advocating Stepwise Abstraction
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
On the Refinement Calculus
Compiler Construction
Hi-index | 0.00 |
The classical concepts of partial and total correctness identify all types of runtime errors and divergence. We argue that the associated notions of translation correctness cannot cope adequately with practical questions like optimizations and finiteness of machines. As a step towards a solution we propose more fine-grained correctness notions, which are parameterized in sets of acceptable failure outcomes, and study a corresponding family of predicate transformers that generalize the well-known wp and wlp transformers. We also discuss the utility of the resulting setup for answering compiler correctness questions.