Acta Informatica

, Volume 8, Issue 2, pp 125–144 | Cite as

Backtracking in recursive computations

  • Nissim Francez
  • Boris Klebansky
  • Amir Pnueli


A mathematical (denotational) semantics is constructed for a formalism of recursive equations with the Alternative operator. This formalism enables the combination of recursion and backtracking. The semantics is defined by applying fixpoint theory to set valued functions. We introduce the notion of strategy to produce subsets of the result. Two implementations are suggested using an auxiliary stack, that trade off recomputation time with space in the auxiliary stack. The concept of a sub-fixpoint is introduced, and the implementations are shown to be incomplete even w.r.t. sub-fixpoint values. One special strategy, the leftmost strategy, which stems from problems such as pattern matching or parsing, is discussed.


Information System Operating System Data Structure Communication Network Information Theory 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bobrow, G.D., Wegbreit, B.: A model and stack implementation of multiple environments. Comm. ACM 16, 591–603 (1973)CrossRefGoogle Scholar
  2. 2.
    Cadiou, J.M., Manna, Z.: Recursive definitions of partial functions and their computations. Proc. ACM Conference on Proving Assertions about Programs, Las Cruces (N.M.), pp. 58–67, 1972Google Scholar
  3. 3.
    Chandra, A.K.: On the properties and applications of program schemas. Stanford University, Computer Science Department, Ph.D. Thesis, 1973Google Scholar
  4. 4.
    Egli, H.: A mathematical model for nondeterministic computation. ETH Zürich, Forschungsinstitut für Mathematik, 1975Google Scholar
  5. 5.
    Fikes, R.E.: REF— ARF. Artificial Intelligence 1,(1970)Google Scholar
  6. 6.
    Floyd, R.W.: Non-deterministic algorithms. J. ACM 14, 636–644 (1967)CrossRefGoogle Scholar
  7. 7.
    Golomb, S.W., Baumert, L.D.: Backtrack programming. J. ACM 12, 516–524 (1965)CrossRefGoogle Scholar
  8. 8.
    Griswold, R.E., Poage, J.F., Polansky, I.P.: The SNOBOL 4 programming language. Englewood Cliffs (N.J.): Prentice-Hall 1968Google Scholar
  9. 9.
    Knaster, B.: Un Théorème sur les functions d'ensembles. Ann. Soc. Pol. Math. 6, 133–134 (1928)Google Scholar
  10. 10.
    Manna, Z.: The correctness of nondeterministic programs. Artificial Intelligence 1, 1–26 (1970)CrossRefGoogle Scholar
  11. 11.
    Manna, Z.: Mathematical theory of computation. New York: McGraw-Hill 1974Google Scholar
  12. 12.
    Manna, Z., Ness, S., Vuillemin, J.: Inductive methods for proving properties of programs. Comm. ACM 16, 491–502 (1973)CrossRefGoogle Scholar
  13. 13.
    Patterson, M.S., Hewitt, C.E.: Comparative schematology. Record of Project MAC Conference on Concurrent Systems and Parallel Computation, ACM, pp. 119–128, 1970Google Scholar
  14. 14.
    Plotkin, G.D.: A powerdomain construction. University of Edinburgh, Dept. of Artificial Intelligence, 1975Google Scholar
  15. 15.
    Prenner, C., Spitzen, J., Wegbreit, B.: An implementation of backtracking for programming languages. Proc. 27th Nat. ACM Conf., pp. 763–771, 1972Google Scholar

Copyright information

© Springer-Verlag 1977

Authors and Affiliations

  • Nissim Francez
    • 1
    • 2
  • Boris Klebansky
    • 1
  • Amir Pnueli
    • 2
  1. 1.Department of Applied MathematicsThe Weizmann Institute of ScienceRehovotIsrael
  2. 2.Department of Mathematics (Division of Computer Science)Tel Aviv UniversityTel AvivIsrael

Personalised recommendations