|
ABSTRACT
An elementary outline of the theorem-proving approach to automatic program synthesis is given, without dwelling on technical details. The method is illustrated by the automatic construction of both recursive and iterative programs operating on natural numbers, lists, and trees.
In order to construct a program satisfying certain specifications, a theorem induced by those specifications is proved, and the desired program is extracted from the proof. The same technique is applied to transform recursively defined functions into iterative programs, frequently with a major gain in efficiency.
It is emphasized that in order to construct a program with loops or with recursion, the principle of mathematical induction must be applied. The relation between the version of the induction rule used and the form of the program constructed is explored in some detail.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Ashcroft, E. A. Mathematical logic applied to the semantics of computer programs. Ph.D. Thesis, 1970, Imperial College, London.
|
| |
2
|
Brice, C., and Derksen, J. A heuristically guided equality rule in a resolution theorem prover. Tech. Note 45, Stanford Res. Inst., Artificial Intelligence Group, Menlo Park, Calif.
|
| |
3
|
Burstall, R. M. Proving properties of programs by structural induction. Comp. J. 12, 1 (1969), 41---48.
|
| |
4
|
----. Formal description of program structure and semantics in first-order logic. In Machine Intelligence 5, Meltzer and Michie, Eds., Edinburgh U. Press, Edinburgh, 1970, pp. 79-98.
|
| |
5
|
Floyd, R. W. Assigning meaning to programs. In Proc. Symposia in Applied Mathematics, Vol. 19, American Mathematical Society, 1967, pp. 19-32.
|
| |
6
|
Green, C. Application of theorem proving to problem solving. Proc. International Joint Conf. on Artificial Intelligence, Washington, D.C., 1969.
|
| |
7
|
|
 |
8
|
|
| |
9
|
Hayes, P. J. A machine-oriented formulation of the extended functional calculus. Memo 62, Stanford Artificial Intelligence Proj., Stanford U., Stanford, Calif., 1969. Also appeared as Metamathematics Unit Report, U. of Edinburgh, Scotland.
|
| |
10
|
|
 |
11
|
|
| |
12
|
Luckham, D., and Nilsson, N. J. Extracting information from resolution proof trees. Tech. Note 32, Stanford Res. Inst., Artificial Intelligence Group, Menlo Park, Calif., 1970.
|
| |
13
|
Manna, Z. The correctness of programs. J. Computer and System Sciences 3, 2, (1969), 119-127.
|
| |
14
|
----, and McCarthy, J. Properties of programs and partial function logic. In Machine Intelligence 5, Meltzer and Michie, Eds., Edinburgh U. Press, Edinburgh, 1970, pp. 79-98.
|
 |
15
|
|
| |
16
|
McCarthy, J. Towards a mathematical science of computation. Proc. iviP Cong. 1962, North-Holland Pub. Co., Amsterdam.
|
| |
17
|
----. A Basis for a Mathematical Theory of Computation. In Computer Programming and Formal Systems, Braffort and Hirshberg, Eds., North Holland Pub. Co., Amsterdam, 1963.
|
| |
18
|
----. Predicate calculus with "undefined" as a truth-value. Memo 1, Stanford Artificial Intelligence Proj. Stanford U., 1963.
|
| |
19
|
|
| |
20
|
Morris, J. B. E-resolution: extension of resolution to include the equality relation. Proc. International Joint Conf. on Artificial Intelligence, Washington, D. C., 1969.
|
| |
21
|
Park, D. Fixpoint induction and proofs of program properties. In Machine Intelligence 5. Meltzer and Michie, Eds., Edinburgh U. Press, Edinburgh, pp. 59-78.
|
| |
22
|
|
 |
23
|
|
| |
24
|
Scott, D. A type-theoretical alternative to CUCH, ISWlM, OWHY. Unpublished memo, 1969.
|
 |
25
|
|
 |
26
|
|
 |
27
|
|
| |
28
|
Waldinger, R. J. Constructing programs automatically using theorem proving. Ph.D. Thesis, 1969, Carnegie-Mellon U., Pittsburgh, Pa.
|
| |
29
|
----, and Lee, R. C. T. PROW: a step toward automatic program writing. Proc. International Joint Conf. on Artificial Intelligence, Washington, D.C., 1969.
|
CITED BY 31
|
|
|
|
|
Thomas A. Standish , Dennis F. Kibler , James M. Neighbors, Improving and refining programs by program manipulation, Proceedings of the annual conference, p.509-516, October 20-22, 1976, Houston, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jan Derksen , Johns F. Rulifson , Richard J. Waldinger, The QA4 language applied to robot planning, Proceedings of the December 5-7, 1972, fall joint computer conference, part II, December 05-07, 1972, Anaheim, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|