|
ABSTRACT
The significant intellectual cost of programming is for problem solving and explaining, not for coding. Yet programming systems offer mechanical assistance for the coding process exclusively. We illustrate the use of an implemented program development system, called PRL ("pearl"), that provides automated assistance with the difficult part. The problem and its explained solution are seen as formal objects in a constructive logic of the data domains. These formal explanations can be executed at various stages of completion. The most incomplete explanations resemble applicative programs, the most complete are formal proofs.
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
|
|
| |
2
|
|
| |
3
|
BATES, J., AND CONSTABLE, R.L. Definition of Micro-PRL. Tech. Rep. TR 82-492, Computer Science Dept., Cornell Univ., Oct. 1981.
|
| |
4
|
BISHOP, E. Foundations of Constructive Analysis. McGraw-Hill, New York, 1967.
|
| |
5
|
BISHOP, E. Mathematics as a numerical language. In Intuitionism and Proof Theory. J. Myhill, et al., Eds., North-Holland, Amsterdam, 1970, 53-71.
|
| |
6
|
BLEDSOE, W. Nonresolution theorem proving. Artif Intell. 9 (1977), 1-36.
|
| |
7
|
BOYER, R. S., AND MOORE, J.S. A Computational Logic. Academic Press, New York, 1979.
|
| |
8
|
|
| |
9
|
CONSTABLE, R.L. Constructive mathematics and automatic program writers. In Proceedings of IFIP Congress, (Ljubljana, 1971), 229-233.
|
| |
10
|
CONSTABLE R. L., AND BATES, J. L. The nearly ultimate PRL. Dept. of Computer Science Tech. Rep. TR 83-551, Cornell Univ., Apr. 1983.
|
| |
11
|
CONSTABLE R.L. Intensional analysis of functions and types. Dept. of Computer Science Internal Rep. CSR-118-82, Univ. of Edinburgh, June 1982.
|
 |
12
|
|
| |
13
|
|
| |
14
|
CONSTABLE R.L. Programs as proofs. Inf. Process. Lett. 16, 3 (Apr. 1983), 105-112.
|
| |
15
|
DEBRUIJN, N. G. A survey of the project AUTOMATH. In Essays on Combinatory Logic, Lambda Calculus, and Formalism. J. P. Seldin and J. R. Hindley, Eds., Academic Press, New York, 1980, 589-606.
|
| |
16
|
|
| |
17
|
GORDON, M., MILNER, R., AND WADSWORTH, C. Edinburgh LCF: A Mechanized Logic of Computation. Lecture Notes in Computer Science, 78, Springer-Verlag, New York, 1979.
|
| |
18
|
|
 |
19
|
|
 |
20
|
|
| |
21
|
JUTTING, L.S. Checking Landau's "Grundlagen" in the AUTOMATH system. Ph.D. dissertation, Eindhoven Univ., Math. Centre Tracts No. 83. Math. Centre, Amsterdam, 1979.
|
| |
22
|
KLEENE, S.C. On the interpretation of intuitionistic number theory. JSL 10 (1945), 109-124.
|
| |
23
|
KLEENE, S.C. Introduction to Metamathematics. D. Van Nostrand, Princeton, N.J., 1952.
|
| |
24
|
|
| |
25
|
LAKATOS, I. Proofs and Refutations. Cambridge University Press, Cambridge, 1976.
|
 |
26
|
|
| |
27
|
MARTIN-LOF P. Constructive mathematics and computer programming. In 6th International Congress for Logic, Method, and Philosophy of Science, (Hannover, Aug. 1979).
|
 |
28
|
|
| |
29
|
|
| |
30
|
POLYA, G. How To Solve It. Princeton University Press, Princeton, N.J., 1945.
|
| |
31
|
PROOFROCK, J. A. PRL: Proof refinement logic programmer's manual (Lambda PRL VAX version). Computer Science Dept., Cornell Univ., 1983.
|
| |
32
|
|
| |
33
|
SCOTT, D. Constructive validity. In Symposium on Automatic Demonstration. Lecture Notes in Mathematics, 125. Springer-Verlag, New York, 1970, 237-275.
|
| |
34
|
|
 |
35
|
|
| |
36
|
STENLUND, S. Combinators, Lambda-Terms, and Proof-Theory. D. Reidel, Dordrecht, 1972.
|
 |
37
|
|
| |
38
|
WHITEHEAD, A. N., AND RUSSELL, B. Principia Mathematica. Vol. 1, Cambridge University Press, Cambridge, 1925.
|
| |
39
|
|
| |
40
|
Wos, L., OVERBEEK, R., EWING, L., AND BOYLE, J. Automated Reasoning. Prentice-Hall, Englewood Cliffs, N.J., 1984.
|
REVIEW
"Ali Mili : Reviewer"
Bates and Constable discuss the use of constructive proofs as a paradigm for
programming. They introduce an implemented program development system, called
PRL, that is based on this paradigm. The use of PRL is illustrated on a
programming proble
more...
|