CW 273

B. Demoen, M. Garcia de la Banda, W. Harvey, K. Marriott, P. Schachte and P. Stuckey
Compiling the HAL variable to Mercury


HAL is a new logic language that makes it easy to implement constraint solvers. HAL gets most of its efficiency from compiling to Mercury code. The main mismatch between HAL and Mercury is that HAL supports variables a la Prolog, while Mercury recognises basically only the instantiations new and ground. We describe here the schema that overcomes this mismatch: it relies on a Parma representation of variables. Its main advantage is that once a datastructure is ground, it has the same internal representation as a Mercury ground term. Experiments show that our schema is very competitive with any other logic implementation that supports unbound terms. We also discuss the implementation of delay for the Herbrand solver.

report.pdf / mailto: B. Demoen