In most PROLOG implementations, for efficiency occur-check is omitted from the unification algorithm. This paper provides natural syntactic conditions that allow the occur-check to be safely omitted. The established results apply to most well-known PROLOG programs, including those that use difference lists, and seem to explain why this omission does not lead in practice to any complications. When applying these results to general programs, we show their usefulness for proving absence of floundering. Finally, we propose a program transformation that transforms every program into a program for which only the calls to the built-in unification predicate need to be resolved by a unification algorithm with the occur-check
Although Prolog is (still) the most widely used logic language, it suffers from a number of drawback...
AbstractAlthough Prolog is (still) the most widely used logic language, it suffers from a number of ...
Program transformation systems are applied both in program synthesis and in program optimization. Fo...
For efficiency reasons, most Prolog implementations do not include an occur check in their unificati...
AbstractFor efficiency reasons, most Prolog implementations do not include an occur check in their u...
Machine is used. This tag maintains information about the context in which a variable is used. This ...
AbstractA method is presented for executing PROLOG programs which avoids almost all unnecessary occu...
AbstractFor reasons of efficiency, in almost all implementations of Prolog the occur check is left o...
We provide simple conditions which allow us to conclude that in case of several well-known Prolog pr...
We show how termination of logic programs with delay declarations can be proven. Three features are ...
Several proposals for computing freeness information for logic programs have been put forward in the...
AbstractSeveral proposals for computing freeness information for logic programs have been put forwar...
In this paper we present several extensions to support a more declarative view of programming in Pro...
Prolog is a logic programming language which is well-suited for rapid prototyping of type systems a...
AbstractUninitialized variables are important to high-performance Prolog implementations since they ...
Although Prolog is (still) the most widely used logic language, it suffers from a number of drawback...
AbstractAlthough Prolog is (still) the most widely used logic language, it suffers from a number of ...
Program transformation systems are applied both in program synthesis and in program optimization. Fo...
For efficiency reasons, most Prolog implementations do not include an occur check in their unificati...
AbstractFor efficiency reasons, most Prolog implementations do not include an occur check in their u...
Machine is used. This tag maintains information about the context in which a variable is used. This ...
AbstractA method is presented for executing PROLOG programs which avoids almost all unnecessary occu...
AbstractFor reasons of efficiency, in almost all implementations of Prolog the occur check is left o...
We provide simple conditions which allow us to conclude that in case of several well-known Prolog pr...
We show how termination of logic programs with delay declarations can be proven. Three features are ...
Several proposals for computing freeness information for logic programs have been put forward in the...
AbstractSeveral proposals for computing freeness information for logic programs have been put forwar...
In this paper we present several extensions to support a more declarative view of programming in Pro...
Prolog is a logic programming language which is well-suited for rapid prototyping of type systems a...
AbstractUninitialized variables are important to high-performance Prolog implementations since they ...
Although Prolog is (still) the most widely used logic language, it suffers from a number of drawback...
AbstractAlthough Prolog is (still) the most widely used logic language, it suffers from a number of ...
Program transformation systems are applied both in program synthesis and in program optimization. Fo...