| A. Colmerauer. Prolog II: Reference Manual and Theoretical Model. Groupe D'Intelligence Arti cielle, Faculte Des Sciences De Luminy, Marseilles, October 1982. |
....modern Prolog systems support coroutining. The coroutining is either supported directly, as in IC Prolog [22, 23] or indirectly by means of an operation called freeze which provides data driven computation. The freeze(X,G) operation, sometimes called geler(X,G) from Prolog II which pioneered it [26], sets up the system to invoke the goal G when the variable X is bound [111] With freeze it is possible to have non preemptive threads that explicitly hand over control to each other by binding variables. Because Prolog s search is based on global backtracking, the threads are not ....
Alain Colmerauer. PROLOG II reference manual and theoretical model. Technical report, Universite Aix-Marseille II, Groupe d'Intelligence Artificielle, October 1982.
....a general implementation scheme for such an algorithm, and instantiate the scheme with an algorithm for the case of constraints over rational trees. CCP [16] comes out of concurrent and constraint logic programming, which originated with the Relational Language [4] and with Prolog II [5], respectively. The computation model of concurrent logic programming languages [17] is based on committedchoice, a particular guard operator. In [10] the commit condition was analyzed as logical entailment. The delay mechanism in Prolog like languages as MuProlog [13, 12] and functional ....
Alain Colmerauer. Prolog II reference manual and theoretical model. Technical report, Groupe Intelligence Artificielle, Universit'e Aix -- Marseille II, October 1982.
....We prove the correctness of this algorithm in both presentations, relying on our concise formal account of the logical properties of rational tree constraints. CCP [14] comes out of concurrent and constraint logic programming, which originated with the Relational Language [4] and with Prolog II [5], respectively. The computation model of concurrent logic programming languages [15] is based on committed choice, a particular guard operator. In [10] the commit condition was analyzed as logical entailment. The delay mechanism in Prolog like languages as MuProlog [12, 11] and functional ....
Alain Colmerauer. Prolog II reference manual and theoretical model. Technical report, Groupe Intelligence Artificielle, Universit'e Aix -- Marseille II, October 1982.
....in Program 2 instantiates X to [1,2 X2] nocheck(X) must be invoked to detect that [1,2 X2] cannot be a solution for any instance of X2. At the same time, we must compile away the bagof primitive that is outside Horn clause logic. 4 : bagof(X, eightqueens(X) B) eightqueens(X) perm([1,2,3,4,5,6,7,8],X) nocheck(X) perm( H T] A P] del( H T] A,L) perm(L,P) perm( del( H T] H, T ) del( H T] A, H T2] del(T,A,T2) nocheck( H T] qsafe(H,T,1) nocheck(T) nocheck( qsafe(U, H T] N) H N= U, H N= U, M is N 1, qsafe(U,T,M) qsafe( Program ....
....perm(L,P) perm( del( H T] H, T ) del( H T] A, H T2] del(T,A,T2) nocheck( H T] qsafe(H,T,1) nocheck(T) nocheck( qsafe(U, H T] N) H N= U, H N= U, M is N 1, qsafe(U,T,M) qsafe( Program 2. Naive 8 queens program. eightqueens(X) eightq([1,2,3,4,5,6,7,8], X) eightq( H T] R,P) del( H T] A,L) qsafe(A,R,1) eightq(L, A R] P) eightq( R,P) rev(R, P) del( H T] H, T ) del( H T] A, H T2] del(T,A,T2) qsafe(U, H T] N) H N= U, H N= U, M is N 1, qsafe(U,T,M) qsafe( rev( A X] Y,Z) rev(X, A Y] Z) rev( ....
[Article contains additional citation context not shown here]
Colmerauer, A., Prolog II Reference Manual and Theoretical Model. Internal report, Groupe Intelligence Articielle, Universit e Aix-Marseille II, 1982.
....trees. Both algorithms are described in detail in [MM93] as well as an algorithm to simplify pattern trees. The unification between pattern trees behaves similarly as unification between regular trees 3 (see [Hu76, Co82a, Co84] Regular trees have been included in the language Prolog II ([Co82b]) The main difference with usual unification is that pattern trees cannot be syntactically equal. The equivalence between two pattern trees is reduced to the equivalence between their sons. The process finish by unification of the leafs or by repetition of unification checks. Notice that this ....
A. Colmerauer, Prolog II: Reference Manual and Theoretical Model, Internal Report, Groupe Intelligence Artificielle, Universit'e Aix-Marseille II.
....be used together with backtracking search. The coroutining is either supported directly, as in IC Prolog [12, 13] or indirectly, by means of an operation called freeze, which provides data driven computation. The freeze(X,G) operation, sometimes called geler(X,G) from Prolog II which pioneered it [14], sets up the system to invoke the goal G when the variable X is bound [80] With freeze it is possible to have nonpreemptive threads that explicitly hand over control to each other by binding variables. Because Prolog s search is based on global backtracking, the threads are not independent: ....
Alain Colmerauer. PROLOG II reference manual and theoretical model. Technical report, Groupe d'Intelligence Articielle, Universite Aix - Marseille II, October 1982.
.... satisfy the admissible closure requirement, in particular the structures of the languages: ffl DATALOG: function free uninterpreted equations and disequations, ffl CLP(R) Jaffar et al.(1992) f( ffl (the core part of) CHIP [Dincbas et al.(1988) finite integer domains, ffl PROLOG II [Colmerauer(1982)] rational tree equations and disequations, ffl and CAL [Sakai and Aiba(1987] free Boolean algebra. Hence constructive negation is suited for use with these languages. 37 10 Conclusion In conclusion, constructive negation provides the first operational mechanism for truly dealing with ....
Colmerauer, A.(1982), PROLOG II -- Reference Manual and Theoretical Model, Internal Report, Groupe Intelligence Artificielle, Universit'e Aix-Marseille II.
....be used together with backtracking search. The coroutining is either supported directly, as in IC Prolog [12, 13] or indirectly, by means of an operation called freeze, which provides data driven computation. The freeze(X,G) operation, sometimes called geler(X,G) from Prolog II which pioneered it [14], sets up the system to invoke the goal G when the variable X is bound [76] With freeze it is possible to have nonpreemptive threads that explicitly hand over control to each other by binding variables. Because Prolog s search is based on global backtracking, the threads are not independent: if ....
Alain Colmerauer. PROLOG II reference manual and theoretical model. Technical report, Groupe d'Intelligence Artificielle, Universit'e Aix - Marseille II, October 1982.
....of this domain shows very promising accuracy, although at a cost in efficiency. 3.2. 3 Dynamically Scheduled Programs: CIAO also includes a version of the PLAI framework which is capable of accurately analyzing (constraint) programs with dynamic scheduling (e.g. including delay declarations [Col82, Car87] Being able to analyze constraint languages with dynamic scheduling also allows analyzing CC languages with angelic nondeterminism. 3 This is based on the observation that most implementations of the concurrent paradigm can be viewed as a computation which proceeds with a fixed, ....
A. Colmerauer et al. Prolog II: Reference Manual and Theoretical Model. Groupe D'intelligence Artificielle, Facult'e Des Sciences De Luminy, Marseille, 1982.
....the presentation, generally modelled using finite domains or reals as these are the simplest to present in a concise manner. However this should not be taken to imply that no other domains are possible. The literature contains discussion of strings, booleans, and rational and infinite trees [16, 17, 18, 77]. We now present a slightly different domain, based on sets and subsets. This differs from those already seen because the domain is only partially ordered (by subset inclusion) Consider the problem of organising interpreters for a meeting of an international organisation. Let us assume that there ....
Alain Colmerauer. Prolog II Reference Manual and Theoretical Model. Technical report, Groupe Intelligence Artificielle, Universit'e Aix -- Marseille II, October 1982.
....of applications were proposed including the implementation of delayed computations, reversible modification of terms, and variable typing. Earlier, Carlsson [5] used a data type called suspension, which was incorporated into SICStus Prolog [6] for the implementation of coroutining facilities [10]. Attributed variables and suspension variables are essentially the same objects. Le Houitouze s contribution was to put some emphasis on the data type as such and on memory management. He also used attributed 1 The work described in this paper is supported in part by ESPRIT project ....
....and dumping of the results in a user understandable format. 2. 2 Attributed Variables And Coroutining an Example The following example, due to [17] serves both to illustrate the use of the primitives introduced in the previous section and also to recover the functionality of freeze 2 [10] since attribute variables are, as mentioned before, most easily implemented in practice by cannibalizing an existing implementation of freeze: freeze(X, Goal) attachattr(V, frozen(V,Goal) X = V. verifyattr(frozen(V,Goal) Val) detachattr(V) V = Val, call(Goal) ....
A. Colmerauer et Al. Prolog II: Reference Manual and Theoretical Model. Groupe D'intelligence Artificielle, Facult'e Des Sciences De Luminy, Marseilles, 1982.
....of this domain shows very promising accuracy, although at a cost in efficiency. 3.2. 3 Dynamically Scheduled Programs CIAO also includes a version of the PLAI framework which is capable of accurately analyzing (constraint) programs with dynamic scheduling (e.g. including delay declarations [eA82, Car87] Being able to analyze constraint languages with dynamic scheduling also allows analyzing CC languages with angelic nondeterminism. 2 This is based on the observation that most implementations of the concurrent paradigm can be viewed as a computation which proceeds with a fixed, ....
A. Colmerauer et Al. Prolog II: Reference Manual and Theoretical Model. Groupe D'intelligence Artificielle, Facult'e Des Sciences De Luminy, Marseilles, 1982.
....of [18, 19] and are described in [5] 2.2 Analysis The compiler includes a number of analysis modules, which can analyze programs over the Herbrand domain or some constraint domains. In addition, analysis of dynamically scheduled programs (concurrent programs or programs with delay declarations [25, 9]) is provided in order to support the concurrent models. The information obtained is instrumental in program parallelization, as well as in other optimizations. The analysis is performed by means of abstract interpretation [14, 17] The underlying framework of analysis is that of PLAI [42, 54, ....
A. Colmerauer et Al. Prolog II: Reference Manual and Theoretical Model. Groupe D'intelligence Artificielle, Facult'e Des Sciences De Luminy, Marseilles, 1982.
....order sorted logic is quite convenient for parsing. Among those known to us CIL [14, 15] is one that comes close to LIFE s spirit in that it combines partial features of Log In [3] see Section 2.2. 2) with delayed evaluation handled with an explicit freeze meta predicate borrowed from Prolog II [9]. CIL s constructs are called Partially Specified Terms (PST s) which are exactly the same as feature matrices used in Unification Grammars [20] and are a strict particular case of Log In s terms. To our knowledge PST s do not accommodate disjunctive constructs, nor do they use a type ....
Colmerauer, A., et al, Prolog-II: Reference Manual and Theoretical Model. Groupe d'Intelligence Artificielle, Facult'e des Sciences d'Aix-Luminy. Marseille, France. 1982.
....natural consequence of seeing constraint solving as asynchronous binding propagation through a object constraint network. Although this is to happen implicitly in most cases, a control primitive to provide an explicit handle for this is of the form wait until and is inspired by Prolog II s freeze [Col82] This allows adaptive control and automatic propagation of constraints. In particular, this is how one can turn generate and test search into remarkably more efficient test and generate search. State of the Art Currently, there are just a few other programming systems with relatively ....
Alain Colmerauer. PROLOG II reference manual and theoretical model. Internal report, Groupe d'Intelligence Artificielle, Universite d'Aix-Marseille II, October 1982.
....computation, forward checking and look ahead have been developed. Some of these techniques have been integrated as new inference rules in CLP systems. It is often admitted that the embryonic attempts to introduce constraints in Prolog are due to Alain Colmerauer with its design of Prolog II [Col82b] able to solve equations in the domain of infinite trees [Col82a] Prolog II also initiated the use of the dif(X,Y) primitive with a co routining mechanism that postpones the disequality check until both arguments become instantiated and produces a backjumping to the clause containing the dif ....
....representation (the finite representation of an infinite tree contains cycles) In RT, f(X) and f(g(1; X) are unified by X = g(1; X) which implicitly gives the infinite tree f(g(1; g(1; g(1; as the solution. Almost linear algorithms are available. The language Prolog II of Marseille [Col82b] has been the first Prolog which chose to solve the unifiability problem in the domain of RT. 3.2 Linear (in)equations in R or Q Various CLP languages enable the user to express linear equalities and inequalities in the domain of R (approximated using floating point numbers) or Q , using ....
A. Colmerauer. PROLOG II reference manual and theoretical model. Technical report, Groupe Intelligence Artificielle, Universit'e Aix-Marseille II, October 1982.
....in several spheres of scientific activity, typical efforts to provide for them amidst constraint languages have brought mostly disappointments as the resulting solvers either lacked effectiveness or scalability. The delay strategy implemented in languages such as CLP(R) 10] and PROLOG III [1] yields an incomplete solver which will be effective only if the problem under attack is such that reasoning about linear constraints ultimately becomes sufficient. Unfortunately, this is seldom the case for interesting problems, even very simple ones. One classic example is the multiplication of ....
A. Colmerauer. Prolog II Reference Manual and Theoretical Model. Rep. groupe d'intelligence artificielle, Universit'e d'Aix-Marseille II, Luminy, October 1982.
....order sorted logic is quite convenient for parsing. Among those known to us CIL [17, 18] is one that comes close to LIFE s spirit in that it combines partial features of Log In [3] see Section 2.2. 2) with delayed evaluation handled with an explicit freeze meta predicate borrowed from Prolog II [11]. CIL s constructs are called Partially Specified Terms (PST s) which are exactly the same as feature matrices used in Unification Grammars [23] and are a strict particular case of Log In s terms. To our knowledge PST s do not accommodate disjunctive constructs, nor do they use a type ....
Colmerauer, A., et al, Prolog-II: Reference Manual and Theoretical Model. Groupe d'Intelligence Artificielle, Faculte des Sciences d'Aix-Luminy. Marseille, France. 1982.
....in several spheres of scientific activity, typical efforts to provide for them amidst constraint languages have brought mostly disappointments as the resulting solvers either lacked effectiveness or scalability. The delay strategy implemented in languages such as CLP(R) 10] and PROLOG III [1] yields an incomplete solver which will be effective only if the problem under attack is such that reasoning about linear constraints ultimately becomes sufficient. Unfortunately, this is seldom the case for interesting problems, even very simple ones. One classic example is the multiplication of ....
A. Colmerauer. Prolog II Reference Manual and Theoretical Model. Rep. groupe d'intelligence artificielle, Universit'e d'Aix-Marseille II, Luminy, October 1982.
No context found.
A. Colmerauer. Prolog II: Reference Manual and Theoretical Model. Groupe D'Intelligence Arti cielle, Faculte Des Sciences De Luminy, Marseilles, October 1982.
No context found.
A. Colmerauer et al., Prolog II: Reference Manual and Theoretical Model, groupe d'Intelligence Artificielle, Faculte des Sciences de Luminy, Marseilles, 1982.
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