Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
|
 |
Controlling search in declarative programs
| |
|
Controlling search in declarative programs
Michael Hanus1 and Frank Steiner1 
| (1) |
Informatik II, RWTH Aachen, D-52056 Aachen, Germany |
Abstract
Logic languages can deal with non-deterministic computations via built-in search facilities. However, standard search methods
like global backtracking are often not sufficient and a source of many programming errors. Therefore, we propose the addition
of a single primitive to logic-oriented languages to control non-deterministic computation steps. Based on this primitive,
a number of different search strategies can be easily implemented. These search operators can be applied if the standard search
facilities are not successful or to encapsulate search. The latter is important if logic programs interact with the (non-backtrackable)
outside world.
We define the search control primitive based on an abstract notion of computation steps so that it can be integrated into
various logic-oriented languages, but to provide concrete examples we also present the integration of such a control primitive
into the multi-paradigm declarative language Curry. The lazy evaluation strategy of Curry simplifies the implementation of
search strategies, which also shows the advantages of integrating functions into logic languages.
This research has been partially supported by the German Research Council (DFG) under grant Ha 2457/1-1.
Fulltext Preview (Small, Large)
 References secured to subscribers.
|
|
|
|
|
|