| M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pp. 374-390. Springer LNCS 1490, 1998. 13 |
....copying and trailing. Close relatives to computation spaces are AKL and Curry. AKL [46, 60] has pioneered encapsulated search and stability. An extension of AKL with finite domain constraints is described in [14] Curry [42] is a functional logic language that also provides encapsulated search [43]. Encapsulated search in Curry has adopted a variant of the solve combinator [131, 132] Section 4.7 discusses the solve combinator and its limitations) 143 The combinator in Curry offers distributors with a dynamic number of alternatives which has not been possible with the originally proposed ....
....engines for the deployment of applications due to the material developed in this thesis. Impact Some ideas in this thesis have already proven their impact. The CHIP search tree tool [133] has been inspired by the Explorer. Encapsulated search in Curry is based on a variant of the solve combinator [43]. On a more general level, I am convinced that future constraint programming systems will support the programming of search engines. I am also convinced that the combination of copying and recomputation will establish itself as a serious alternative for implementing search that at least matches ....
Michael Hanus and Frank Steiner. Controlling search in declarative programs. In Catuscia Palamidessi, Hugh Glaser, and Karl Meinke, editors, Principles of Declarative Programming, volume 1490 of Lecture Notes in Computer Science, pages 374--390, Pisa, Italy, September 1998. Springer-Verlag.
.... advocate lazy evaluation strategies (e.g. Babel [15] Curry [11] Escher [13] K LEAF [4] More recently, a number of interesting techniques and extensions have been developed in this area, like optimal evaluation strategies [1, 2] non deterministic functions [1, 5] or encapsulated search [10, 18]. This raises the question how these different features can be exploited in practice. In the following we want to answer it. For this purpose we consider the multi paradigm language Curry [11] a new declarative language intended to combine functional, logic and concurrent programming paradigms ....
....description of our musical application is contained in Section 4. More details can be found in [9] 2 Basic Features of Curry This section provides an informal introduction to the computation model and basic features of Curry which are used in the subsequent sections. More details can be found in [8, 10] and in the language definition [11] A Curry program is a set of functions operating on values described as algebraic data types. Predicates are nothing special as in logic programming but are represented as Boolean functions. Thus, a Curry program looks very much like a functional program which ....
[Article contains additional citation context not shown here]
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Proc. Joint International Symposium PLILP/ALP'98. To appear in Springer LNCS, 1998.
No context found.
M. Hanus and F. Steiner. Controlling search in declarative programs. In Principles of Declarative Programming (Proc. Joint Intl. Symposium PLILP/ALP '98), pages 374--390. Springer LNCS 1490, 1998.
No context found.
M. Hanus and F. Steiner. Controlling search in declarative programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pages 374--390. Springer LNCS 1490, 1998.
No context found.
M. Hanus and F. Steiner. Controlling search in declarative programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pages 374--390. Springer LNCS 1490, 1998.
....is more exible since it does not depend on threads, but it can control to any degree of granularity the scheduling of steps in distinct computations. This eases the implementation of problem speci c search strategies at the top level, whereas Curry2Java is restricted to encapsulated search [20]. Our implementation is the subject of active investigation in several directions. Thus, we are not speci cally concerned with its eciency at this time. Rather, we are studying architectures that easily integrate concepts and ideas that have been proposed for functional logic programming. Ef ....
....We plan to work on this aspect, but only after resolving the architectural issues related to the inclusion of search and concurrency features which are discussed in the next section. 7. FURTHER EXTENSIONS A very interesting feature for modern functional logic languages is encapsulated search [20]. Although this feature is not yet included in our implementation, our architecture is ready to accommodate it. Encapsulated search uses a search operator to explicitly control di erent branches of a non deterministic computation. It relies on a data structure to encode search goals and their ....
[Article contains additional citation context not shown here]
M. Hanus and F. Steiner. Controlling search in declarative programs. In Principles of Declarative Programming (Proc. Joint Intl. Symposium PLILP/ALP '98), pages 374-390. Springer LNCS 1490, 1998.
....of a base language with lazy evaluation to provide a simple implementation of search strategies in Section 6. Section 7 compares our techniques with related work, and Section 8 contains our conclusions. Due to lack of space, we omit some details and the proofs of the theorems which can be found in [4, 5]. 2 Operational Semantics of the Base Language As mentioned above, the search primitive should control the di erent nondeterministic steps occurring in a derivation. To abstract from the operational model of the concrete base language, we only assume that a computation step of the base language ....
....fy1 ; ym i g = VRan( i ) n (fx; x1 ; xng [ Var(g) suspend otherwise Fig. 1. Operational semantics of the try operator for g = x let x1 ; xn free in fcg 3. 2 Local Variables Some care is necessary if free variables occur in a search goal, as in E fappend(L, E] [3,4,5]g ( To compute the last element E of the list [3,4,5] with this goal, the variable L must be instantiated which is problematic since L is free. There are di erent possibilities to deal with this case. In Prolog s bagof setof predicates, free variables are (possibly non deterministically ) ....
[Article contains additional citation context not shown here]
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. Technical Report, RWTH Aachen, 1998
.... X in a a are equivalent but would produce di erent 181 results with sharing. Luckily, the intended behavior can be obtained by a slight change of the de nition of hnf so that terms headed by io are not shared. The primitives of Curry to encapsulate search and de ne new search strategies [17] cannot be directly implemented in Prolog due to its xed backtracking strategy. However, one can implement some standard depth rst search strategies of Curry via Prolog s findall and bagof primitives. 4 Experimental Results We have developed a compiler from Curry programs into Prolog programs ....
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pp. 374-390. Springer LNCS 1490, 1998.
.... Thus, one can easily provide web services where constraint solving and search is involved (e.g. web services with a natural language interface) as shown in the (purely logic based) PiLLoW library [2] Since event handlers must be deterministic functions, the encapsulation of search in Curry [8] becomes quite useful for such kinds of applications. Furthermore, Curry exploits the logic programming features to support concurrent and distributed programming by the use of port constraints [5] This can be used to retrieve information from other Internet servers (as done in the web pages for ....
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pp. 374-390. Springer LNCS 1490, 1998.
....that act on the outside world, which contains the le system, the Internet etc. Since this world can not be copied, nondeterminism in combination with monadic I O is not allowed and leads to a run time error in Curry. To avoid this problem, Curry allows to encapsulate nondeterministic computations [15, 28], thus increasing program stability and safety. The remaining problem is to detect all possible sources for nondeterminism in a program. This can be very dicult even for small programs and often also depends on the form of queries the user may ask. Thus, our aim is to develop a method to detect ....
....the computational domains (constructors) and the function declarations the operations on these domains. Curry combines various features known in declarative programming, like higher order functions, constraints and the possibility to use constraint solvers for various domains, encapsulated search [15, 28], a Hindley Milner like polymorphic type system [4] monadic I O [30] and features for communication and distributed programming [11] A detailed description of these features can be found in [16] In the following we will only outline those which are necessary to understand the ideas of our ....
[Article contains additional citation context not shown here]
M. Hanus and F. Steiner. Controlling search in declarative programs. In Proc. of Joint International Symposium PLILP/ALP'98, pages 374-390. Springer LNCS 1490, 1998.
....it to the terminal can be de ned as follows: putStr [ return ( putStr (c:cs) putChar c putStr cs Similarly, the composed action readFile f = putStr prints the contents of le f. Curry o ers further features, like the encapsulation and control of non deterministic computations [8] or for the development of distributed systems [5] Since these are not important for the topic of this paper, we do not discuss them here. 3 Modeling Basic HTML In order to avoid certain syntactical errors (e.g. unbalanced parenthesis) during the generation of HTML documents by a web server, ....
.... Thus, one can easily provide web services where constraint solving and search is involved (e.g. web services with a natural language interface) as shown in the (purely logic based) PiLLoW library [2] Since event handlers must be deterministic functions, the encapsulation of search in Curry [8] becomes quite useful for such kind of applications. Furthermore, Curry exploits the logic programming features to support concurrent and distributed programming by the use of port constraints [5] This can be used to retrieve information from other Internet servers (as done in the web pages for ....
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pp. 374-390. Springer LNCS 1490, 1998.
.... advocate lazy evaluation strategies (e.g. Babel [19] Curry [13] Escher [16] K LEAF [7] More recently, a number of interesting techniques and extensions have been developed in this area, like optimal evaluation strategies [2, 3] non deterministic functions [2, 8] or encapsulated search [12, 22]. This raises the question how these di#erent features can be exploited in practice. In the following we want to answer it. For this purpose we consider the multi paradigm language Curry [13] a new declarative language intended to combine functional, logic and concurrent programming paradigms ....
....search strategies. The description of our musical application is contained in Section 4. 3 2 Basic Features of Curry This section provides an informal introduction to the computation model and basic features of Curry which are used in the subsequent sections. More details can be found in [11, 12] and in the language definition [13] A Curry program is a set of functions operating on values described as algebraic data types. Predicates are nothing special as in logic programming but are represented as Boolean functions. Thus, a Curry program looks very much like a functional program which ....
[Article contains additional citation context not shown here]
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Proc. Joint International Symposium PLILP/ALP'98. To appear in Springer LNCS, 1998.
....A difficulty in combining logic oriented languages with I O is the fact that the meaning of I O operations becomes unclear when a computation is split into two disjunctive paths. In Curry this problem is solved by encapsulating possible non deterministic computations between I O operations (see [10] for details) We do not further discuss this technique here but remark that non deterministic search is not performed for goals containing global variables but only for goals where all unbound variables are existentially quantified in this goal. Since we will create GUIs via global variables ....
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pp. 374--390. Springer LNCS 1490, 1998.
.... X in a a are equivalent but would produce different results with sharing. Luckily, the intended behavior can be obtained by a slight change of the definition of hnf so that terms headed by io are not shared. The primitives of Curry to encapsulate search and define new search strategies [17] cannot be directly implemented in Prolog due to its fixed backtracking strategy. However, one can implement some standard depth first search strategies of Curry via Prolog s findall and bagof primitives. 4 Experimental Results We have developed a compiler from Curry programs into Prolog ....
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pp. 374--
....Thus, purely functional programming and purely logic programming are obtained as particular restrictions of this model. Moreover, impure features of Prolog (e.g. arithmetic, cut, I O) are avoided and don t know non deterministic computations can be encapsulated and controlled by the programmer [12]. For concurrent computations, the evaluation of functions can be suspended depending on the instantiation of arguments, and constraints can be executed concurrently. This provides an easy modeling of concurrent objects as functions synchronizing on a stream of messages. Based on this computation ....
.... strategy) To provide flexible application oriented search strategies and to avoid global backtracking like in Prolog which causes problems when integrated with I O and concurrent computations, don t know non deterministic computations can be encapsulated and controlled by the programmer [12]. For this purpose, a search goal is a lambda abstraction x c where c is the constraint to be solved and x is the search variable occurring in c for which solutions should be computed. Based on a single language primitive to control non deterministic computation steps, various search strategies ....
[Article contains additional citation context not shown here]
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming, pp. 374--390. Springer LNCS 1490, 1998.
No context found.
M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP'98), pp. 374-390. Springer LNCS 1490, 1998. 13
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC