The foundations of program verification (2nd ed.)
The foundations of program verification (2nd ed.)
A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
Systems semantics: principles, applications, and implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Predicate calculus and program semantics
Predicate calculus and program semantics
Programming in the 1990s: an introduction to the calculation of programs
Programming in the 1990s: an introduction to the calculation of programs
Introduction to the theory of programming languages
Introduction to the theory of programming languages
Combining angels, demons and miracles in program specifications
Theoretical Computer Science
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
A practical theory of programming
A practical theory of programming
A logical approach to discrete math
A logical approach to discrete math
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Joining specification statements
Theoretical Computer Science
Specifications, programs, and total correctness
Science of Computer Programming
An axiomatic basis for computer programming
Communications of the ACM
Under the spell of Leibniz's dream
Information Processing Letters - Special issue in honor of Edsger W. Dijkstra
Predicate-Transformation Semantics with Recursion and Unbounded Choice
Predicate-Transformation Semantics with Recursion and Unbounded Choice
Mathematical Theory of Program Correctness
Mathematical Theory of Program Correctness
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Computer
Proceedings of the 6th International Conference on Mathematics of Program Construction
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Dijkstras Predicate Transformers & Smyth's Power Domaine
Proceedings of the Abstract Software Specifications, 1979 Copenhagen Winter School
Computation Calculus - Bridging a Formalization Gap
MPC '98 Proceedings of the Mathematics of Program Construction
Functional declarative language design and predicate calculus: a practical approach
ACM Transactions on Programming Languages and Systems (TOPLAS)
Making Temporal Logic Calculational: A Tool for Unification and Discovery
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Pointfree expression and calculation: from quantification to temporal logic
Formal Methods in System Design
The timer cascade: functional modelling and real time calculi
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
Using domain-independent problems for introducing formal methods
FM'06 Proceedings of the 14th international conference on Formal Methods
Microsemantics as a bootstrap in teaching formal methods
TFM'06 Proceedings of the 2006 conference on Teaching Formal Methods: practice and experience
Hi-index | 0.00 |
The objects of programming semantics, namely, programs and languages, are inherently formal, but the derivation of semantic theories is all too often informal, deprived of the benefits of formal calculation “guided by the shape of the formulas.” Therefore, the main goal of this article is to provide for the study of semantics an approach with the same convenience and power of discovery that calculus has given for many years to applied mathematics, physics, and engineering. The approach uses functional predicate calculus and concrete generic functionals; in fact, a small part suffices. Application to a semantic theory proceeds by describing program behavior in the simplest possible way, namely by program equations, and discovering the axioms of the theory as theorems by calculation. This is shown in outline for a few theories, and in detail for axiomatic semantics, fulfilling a second goal of this article. Indeed, a chafing problem with classical axiomatic semantics is that some axioms are unintuitive at first, and that justifications via denotational semantics are too elaborate to be satisfactory. Derivation provides more transparency. Calculation of formulas for ante- and postconditions is shown in general, and for the major language constructs in particular. A basic problem reported in the literature, whereby relations are inadequate for handling nondeterminacy and termination, is solved here through appropriately defined program equations. Several variants and an example in mathematical analysis are also presented. One conclusion is that formal calculation with quantifiers is one of the most important elements for unifying continuous and discrete mathematics in general, and traditional engineering with computing science, in particular.