|
ABSTRACT
Primitive operations for backtracking and a technique for their implementation are described. The technique is applicable to all programming languages whose control structure is strictly hierarchical. A general stack model for such languages is presented and a realization of the backtracking primitives is described in terms of this model. The primitives give the user control over which assignents to variables will be 'undone' when backtracking. Moreover, their realization, at each point of choice, does not save the entire current machine state but only a relatively small amount of information sufficient to later reconstruct that machine state. Consequently, the implementation makes efficient use of storage and makes backtracking a practical progamming device for dealing with complex problems.
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
|
Johansen, P., "Non-deterministic programming", <u>BIT</u>, 7, 289, 1967.
|
| |
4
|
Wegbreit, B. <u>et al, ECL programmer's manual</u>, 1972, Center for Research in Computing Technology, Harvard University, Cambridge.
|
| |
5
|
Wegbreit, B., "The ECL programming system", Proc. AFIPS 1971 FJCC, 39, p. 253, AFIPS Press, Montvale, N. J.
|
| |
6
|
Dijkstra, E. W., "Recursive programming", <u>Numerische Mathematik</u>, 2, 312, 1960. Also in <u>Programming Systems and Languages</u>., S. Rosen (ed.), 1967, McGraw-Hill, New York.
|
 |
7
|
|
| |
8
|
Bobrow, D. and Wegbreit, B., "A model and stack implementation of multiple environments", BBN Report No. 3334, 1972.
|
| |
9
|
Wegner, P., "Data structure models for programming languages", Proc. Symposium on Data Structures in Programming Languages, p. 1, 1971, Gainesville, Florida.
|
| |
10
|
Hewitt, C., "PLANNER: A language for manipulating models and proving theorems in a robot", Proc. International Joint Conference on Artificial Intelligence, p. 295, 1969, Washington, D. C.
|
| |
11
|
Spitzen, J. M., "Non-deterministic algorithms in ECL", ECL working Memo, 1971, Center for Research in Computing Technology, Harvard University, Cambridge.
|
INDEX TERMS
Keywords:
backtrack programming,
choice functions,
control structures,
dendrarchy,
environments,
extensible control structures,
heuristic methods,
non-determinism,
problem solving,
retention,
scoping of variables,
stack allocation
|