A System for Tabled Constraint Logic Programming

As extensions to traditional logic programming, both tabling and Constraint Logic Programming (CLP) have proven powerful tools in many areas. They make logic programming more efficient and more declarative. However, combining the techniques of tabling and constraint solving is still a relatively new research area. In this paper, we show how to build a Tabled Constraint Logic Programming (TCLP) system based on XSB -- a tabled logic programming system. We first discuss how to extend XSB with the fundamental mechanism of constraint solving, basically the introduction of attributed variables to XSB, and then present a general framework for building a TCLP system. An interface among the XSB tabling engine, the corresponding constraint solver, and the user's program is designed to fully utilize the power of tabling in TCLP programs.