This paper makes a contribution to the calculational paradigm of programdevelopment, a paradigm in which programs are calculated from their specifications by applying meaning preserving transformations. It introduces...
详细信息
This paper makes a contribution to the calculational paradigm of programdevelopment, a paradigm in which programs are calculated from their specifications by applying meaning preserving transformations. It introduces program induction, a technique analogous to mathematical induction, and iteration folding, a refinement rule. Using program induction, a specification is decomposed into a base case and an inductive case and their solutions are sequentially composed to derive the final program. The iteration folding rule is applied to transform potentially infinite nested if statements into a while statement. Our technique and rule augment the existing repertoire of techniques and rules in the calculus of program refinement.
The field of program verification has as its goal the construction of computer systems for determining whether a given program is correct. Although automatic proofs of the correctness of large programs may be a long w...
详细信息
The field of program verification has as its goal the construction of computer systems for determining whether a given program is correct. Although automatic proofs of the correctness of large programs may be a long way off, it is evident that the techniques being developed will be useful to find the bugs in faulty programs and to give confidence in correct ones. Once techniques for proving program correctness are available, they should be used to ensure the correctness of the program while it is being constructed rather than waiting to apply them after the program is complete. program verification relies on automatic theorem-proving techniques that employ principles of deductive reasoning that can be employed in an "automatic synthesis system." Such a system accepts specifications that express the purpose of the program to be constructed, without giving any hint of the algorithm to be employed. The basic approach is to transform the specifications repeatedly according to certain transformation rules, until a satisfactory program is produced. These rules are guided by a number of strategic controls. A running program-synthesis system, called DEDALUS, incorporates these techniques. The methods of synthesis can be applied to various aspects of programming.
Techniques derived from mathematical logic promise to provide an alternative to the conventional methodology for constructing, debugging, and optimizing computer programs. Ultimately, these techniques are intended to ...
详细信息
暂无评论