Cited by 285Logic, programming, and type systemsComputability, Logic, AI Algorithmssemigroups and automata theory

Toward automatic program synthesis

Open access
Manna, Zohar, Waldinger, Richard J.·1971·Communications of the ACM

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.

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Integrity signals

Registry

Crossref · 10.1145/362566.362568

Cites

23 of 23 references verified0 citation errors · 0 not checkable

Statistics

Claims the paper makes

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Claims other papers make about this one

Each is checked against this paper’s own text: does it say what the citing paper says it does?

  • Program synthesis automatically generates source code in a programming language using user-specified constraints.

    “Using user-specified constraints, program synthesis (or source code generation) automatically generates source code in a programming language (Waldinger et al. 1969; Manna and Waldinger 1971).”

    From Large language models (LLMs): survey, technical frameworks, and future challenges (2024) · cites this paper as Manna and Waldinger 1971

Self-check

Percentages, sums and reported differences re-computed from the paper’s own numbers.

The self-check needs the paper’s full text.

Cites

Flagged first, then by citations

1 of the 24 references couldn’t be matched to a known paper.

Research works printed but not linked: 4

  1. ----. 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.
  2. Floyd, R. W. Assigning meaning to programs. In Proc. Symposia in Applied Mathematics, Vol. 19, American Mathematical Society, 1967, pp. 19-32.
  3. ----, 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.
  4. Park, D. Fixpoint induction and proofs of program properties. In Machine Intelligence 5. Meltzer and Michie, Eds., Edinburgh U. Press, Edinburgh, pp. 59-78.

Cited by

Sorted by citations

Authors
Manna, Z., & Waldinger, R. J.
Affiliations
  • Stanford University (US)
  • SRI International (US)
Venue
Communications of the ACM
Published
1971-03
Volume
14
Issue
3
Pages
151-165
ISSN
  • 0001-0782 (ISSN-L)
  • 1557-7317
OpenAlex
W2037237472
Cited by
285
References
24
Citations by year
2026: 7 · 2025: 17 · 2024: 10 · 2023: 12 · 2022: 5 · 2021: 12 · 2020: 14 · 2019: 8 · 2018: 9 · 2017: 11 · 2016: 5 · 2015: 6 · 2014: 9 · 2013: 12 · 2012: 7
FWCI
21.08
Type
journal article
Language
en
Open access
Locations
Communications of the ACM (publishedVersion)
Topics
  • Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
  • Physical Sciences › Computer Science › Computational Theory and Mathematics › Computability, Logic, AI Algorithms
  • Physical Sciences › Computer Science › Computational Theory and Mathematics › semigroups and automata theory
Keywords
program synthesis, theorem proving, mathematical induction, recursive programs, iterative programs, program transformation, specification-based synthesis, lists, trees, natural numbers

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review