Learn More
We address the task of an efficient implementation of Prolog extensions. Prolog is a very good language for prototyping and almost any extension can be quickly written in Prolog using a Prolog interpreter and tested on small examples. It is harder to find out if the results scale up to large, real life problems, though. A Prolog interpreter, even if(More)
The execution of a compiled Prolog program can spend a significant amount of time in the unification of compound terms. We show that in the Warren Abstract Machine [7], the approach to compile this unification may be unnecessarily inefficient. When we analyse what are the redundant operations that the WAM executes, we can see that the inefficiency is mainly(More)
This paper puts forward the argument for a general and flexible event handling mechanism in Prolog. This will make it more user-friendly, more powerful and more versatile for use in various real-life application domains. We present a scheme of handling synchronous and asynchronous events in Prolog, justify why such a scheme should be incorporated in Prolog,(More)
Constraint programming (CP) is in its substance non-algorithmic programming, not last because it is often being applied to problems for which no efficient algorithms exist. A not immediately obvious consequence of this fact is that debugging CP programs is principally different from debugging algorithmic programs, including imperative, functional or Prolog(More)
The usual way to implement an efficient CLP system is to define a set of primitive constraints which can be accessed from Prolog and to code them very efficiently, e.g. in C. This approach produces programs that are very fast, however in the long run it is not productive: the user’s ability to define new constraints or to modify the existing ones is(More)
  • Micha Meier
  • ICLP-Workshops on Implementation of Logic…
  • 1993
Some Prolog systems are able to delay the execution of Prolog goals and resume it later. We were involved in the design, implementation and evaluation of several such systems and we summarise here our experiences with them. First we describe a general structure of such ’coroutining’ systems and then we concentrate on the particular features of and choices(More)