Improving PARMA Trailing
Abstract
Taylor introduced a variable binding scheme for logic variables in his PARMA system, that uses cycles of bindings rather than the linear chains of bindings used in the standard WAM representation. Both the HAL and dProlog languages make use of the PARMA representation in their Herbrand constraint solvers. Unfortunately, PARMA's trailing scheme is considerably more expensive in both time and space consumption. The aim of this paper is to present several techniques that lower the cost. First, we introduce a trailing analysis for HAL using the classic PARMA trailing scheme that detects and eliminates unnecessary trailings. The analysis, whose accuracy comes from HAL's determinism and mode declarations, has been integrated in the HAL compiler and is shown to produce space improvements as well as speed improvements. Second, we explain how to modify the classic PARMA trailing scheme to halve its trailing cost. This technique is illustrated and evaluated both in the context of dProlog and HAL. Finally, we explain the modifications needed by the trailing analysis in order to be combined with our modified PARMA trailing scheme. Empirical evidence shows that the combination is more effective than any of the techniques when used in isolation. To appear in Theory and Practice of Logic Programming.
- Publication:
-
arXiv e-prints
- Pub Date:
- May 2005
- DOI:
- 10.48550/arXiv.cs/0505085
- arXiv:
- arXiv:cs/0505085
- Bibcode:
- 2005cs........5085S
- Keywords:
-
- Computer Science - Programming Languages;
- Computer Science - Performance;
- D.3.4;
- D.1.6;
- D.3.3
- E-Print:
- 36 pages, 7 figures, 8 tables