Derivation of programs for freshmen
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
Towards an introductory formal programming course
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
The Science of Programming
An undergraduate course in formal methods: “description is our business”
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Hi-index | 0.00 |
Three fundamental principles of static reasoning used to write imperative program code with built-in proof of its correctness are presented and explained in operational terms. It is argued that, although the traditional use of formal logic in the Hoare-Dijkstra-Gries methodology is probably the most efficient way to write code with built-in proofs of correctness, the ideas underlying that methodology are much simpler than commonly perceived through the veil of formal logic and axiomatic semantics. Examples are given illustrating principles and techniques for deriving code from specifications, using the informal reasoning of the mathematician without either the terminology or notation of formal logic.