Subrecursive Programming Languages, Part I: efficiency and program structure
Journal of the ACM (JACM)
The synthesis of loop predicates
Communications of the ACM
Certification of algorithm 245 [M1]:treesort 3:proof of algorithms—a new kind of certification
Communications of the ACM
Communications of the ACM
The next 700 programming languages
Communications of the ACM
A high-speed sorting procedure
Communications of the ACM
The current state of proving programs correct
ACM '72 Proceedings of the ACM annual conference - Volume 1
ACM '74 Proceedings of the 1974 annual conference - Volume 1
A program verifier
Computer programming with a dynamic algebra
Computer programming with a dynamic algebra
Topological reorganization as an aid to program simplification
Topological reorganization as an aid to program simplification
On the teaching of disciplined programming
ACM SIGPLAN Notices
Computer Sorting
Hi-index | 0.00 |
An approach to the mechanization of the certification of programs is the development of a canonical form for computer programs. Two programs would be declared equivalent, that is, for all inputs they produce identical outputs, if and only if they have the same canonical form. The nature of such a canonical form for computer programs is discussed. For a certain non-trivial class of programs, a methodology for producing the canonical form from the original program is developed, and the present limitations of this approach are explored. Finally, the methodology is applied to two different sort algorithms, demonstrating that these algorithms are equivalent since they possess the same canonical form.