Journal of the ACM (JACM)
Backtracking in a Generalized Control Setting
ACM Transactions on Programming Languages and Systems (TOPLAS)
Two-level control structure for nondeterministic programming
Communications of the ACM
Backtrack programming techniques
Communications of the ACM
An indeterminate constructor for applicative programming
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Approach to Fair Applicative Multiprogramming
Proceedings of the International Sympoisum on Semantics of Concurrent Computation
Chapter I: Notes on structured programming
Structured programming
Hi-index | 0.00 |
In this paper we introduce a methodology for utilizing concurrency in place of backtracking in the implementation of nondeterministic algorithms. This is achieved in an applicative setting through the use of the Friedman-Wise multiprogramming primitive frons, and a paradigm which views the action of nondeterministic algorithms as one of data structure construction. The element by element nondeterminism arising from a linearized search is replaced by a control structure which is oriented towards constructing sets of partial computations. This point of view is facilitated by the use of suspensions, which allow control disciplines to be embodied in the form of conceptual data structures that in reality manifest themselves only for purposes of control. We apply this methodology to the class of problems usually solved through the use of simple backtracking (e.g. ''eight queens''), and to a problem presented by Lindstrom to illustrate the use of coroutine controlled backtracking, to produce backtrack-free solutions. Our solution to the latter illustrates the coroutine capability of suspended structures, but also demonstrates a need for further investigations into resolving problems of process communication in applicative languages.