Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

The automatic synthesis of recursive programs

Published: 01 August 1977 Publication History

Abstract

We describe a deductive technique for the automatic construction of recursive programs to meet given input-output specifications. These specifications express what conditions the output of the desired program is expected to satisfy. The deductive technique involves transforming the specifications by a collection of rules, summoned by pattern-directed function invocation. Some of these transformation rules express the semantics of the subject domain; others represent more general programming techniques. The rules that introduce conditional expressions and recursive calls into the program are discussed in some detail.
The deductive techniques described are embedded in a running system called SYNSYS. This system accepts specifications expressed in high-level descriptive language and attempts to transform them into a corresponding LISP program. The transformation rules are expressed in the QLISP programming language. The synthesis of two programs performed by the system are presented.
This research was supported in part by the Advanced Research Projects Agency of the Department of Defense under Contract MDA903-76-C-0206, by the National Science Foundation under Grant DCR72-03737 A01, by the Office of Naval Research under Contracts N00014-76-C-0687 and N00014-75-C-0816; and by a grant from the United States-Israel Binational Science Foundation (BSF), Jerusalem, Israel.
The views and conclusions contained in this document are those of the authors and should not be interpreted as necessarily representing the official policies, either expressed or implied, of Stanford University, Stanford Research Institute, or the U.S. Government.

References

[1]
Barstow, D. R. and E. Kant {Oct. 1976},Observations on the interaction between coding and efficiency knowledge in the PSI program synthesis system, Proceedings of the Second International Conference on Software Engineering, San Francisco, Ca., pp. 19-31.
[2]
Biedsoe, W. W., and M. Tyson {1977},Typing and proof by cases in program verification, in Machine Intelligence 8: Machine Representations of Knowledge, (E. W. Elcock and D. Michie, editors), Ellis Horwood, Edinburgh, Scotland (to appear).
[3]
Boyer, R. S., and J S. Moore {Jan. 1975},Proving theorems about LISP functions, JACM, Vol. 22, No. 1, pp. 129-144.
[4]
Burstall, R. M. and J. Darlington {April 1975},Some transformations for developing recursive programs, Proceedings of the International Conference on Reliable Software, Los Angeles, Ca., pp. 465-472.
[5]
Darlington, J. {July 1975},Applications of program transformation to program synthesis, Colloques IRIA on Proving and Improving Programs, Arc et Senans, France, pp. 133-144.
[6]
Dijkstra, E. W. {1976},A discipline of programming, Prentice-Hall, Englewood Cliffs, N. J.
[7]
Manna, Z. and R. Waldinger {1975},Knowledge and reasoning in program synthesis, Artificial Intelligence, Vol. 6, No. 2, pp. 175-208.
[8]
Siklossy, L. {1974},The synthesis of programs from their properties, and the insane heuristic, Proceedings of the Third Texas Conference on Computing Systems, Austin, Texas.
[9]
Waldinger, R. J. {1977},Achieveing several goals simultaneously, in Machine Intelligence 8: Machine Representations of Knowledge, (E. W. Elcock and D. Michie, editors), Ellis Horwood, Edinburgh, Scotland (to appear).
[10]
Warren, D. H. D. {July 1976},Generating conditional plans and programs, Proceedings of Conference on Artificial Intelligence and Simulation on Behaviour, Edinburgh, Scotland, pp. 344-354.
[11]
Wegbreit, B {Sept. 1975},Goal-directed program transformation, Research report, Xerox Research Center, Palo Alto, Ca.
[12]
Wilber, B. M . {Mar. 1976},A QLISP reference manual, Technical note, Stanford Research Institute, Menlo Park, Ca.
[13]
Wirth, N. {1976},Algorithms + data structures &equil; programs, Prentice-Hall Inc., Englewood Cliffs, N.J.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGART Bulletin
ACM SIGART Bulletin Just Accepted
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
August 1977
179 pages
ISSN:0163-5719
DOI:10.1145/872736
Issue’s Table of Contents
  • cover image ACM Conferences
    Proceedings of the 1977 symposium on Artificial intelligence and programming languages
    August 1977
    185 pages
    ISBN:9781450378741
    DOI:10.1145/800228

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 1977
Published in SIGAI , Issue 64

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)65
  • Downloads (Last 6 weeks)12
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media