{"type":"ScholarlyArticle","title":"The Automatic Synthesis of Systems of Recursive Programs","authors":[{"name":"Zohar Manna","slug":"zohar-manna","given":"Zohar","family":"Manna","affiliation":""},{"name":"Richard J. Waldinger","slug":"richard-j-waldinger","given":"Richard J.","family":"Waldinger","affiliation":""}],"abstract":"A technique is presented for constructi ng a program from given specifications. The basic approach is to transform the specifications repeatedly, according to certain rules, until the desired program is produced. Two important transformation rules are those responsible for introducing conditional expressions and recursion into the target program. These transformations have been introduced In previous publications, and are discussed here briefly. Often, to construct a recursive program it is necessary to define other auxilliary programs to achieve certain subtasks of the main task. The formation of such systems of auxilliary programs Is specially emphasized in this paper. The program synthesis techniques we discuss have been incorporated into a running system called SYNSYS. This system accepts high-level specifications expressed in mathematical notation, and produces recursive programs in pure LISP. The transformations are represented in the system as programs in the QLISP language, and are summoned by pattern-directed function invocations. The synthesis of two programs produced by the system are presented. This research ruas supported in part by the Advanced Research Projects Agency of the Department of Defense under Contract M DA903-76-C-0206, by the National Science Foundation under Grant DCR72-03737 AOI , by the Office of Naval Research under Contracts NOOOH-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.","doi":null,"url":"https://ijcai.org/proceedings/1977/94","pdf":"https://ijcai.org/proceedings/1977/0094.pdf","markdown":"https://ijcai.org/proceedings/1977/94.md","bibtex":"https://ijcai.org/proceedings/1977/bibtex/94","volume":{"slug":"1977","title":"Proceedings of the Fifth International Joint Conference on Artificial Intelligence","short_title":"IJCAI 1977","url":"https://ijcai.org/proceedings/1977/","year":1977,"location":"Cambridge, MA, USA","dates":"","editors":"Raj Reddy","isbn":"","publisher":"International Joint Conferences on Artificial Intelligence","doi_prefix":""},"section":"Aids to Programming","track":"Aids to Programming","number":94,"pages":{"first":405,"last":410},"keywords":[],"videos":[],"references":[],"license_note":"Copyright International Joint Conferences on Artificial Intelligence."}