An application of abstract interpretation of logic programs: occur check reduction
Proc. of the European symposium on programming on ESOP 86
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
A simple code improvement scheme for Prolog
Journal of Logic Programming
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Live-structure dataflow analysis for Prolog
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type analysis of Prolog using type graphs
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Backtracking without trailing in CLP ( RLin )
ACM Transactions on Programming Languages and Systems (TOPLAS)
Comparing trailing and copying for constraint programming
Proceedings of the 1999 international conference on Logic programming
CP '99 Proceedings of the 5th International Conference on Principles and Practice of Constraint Programming
To the Gates of HAL: A HAL Tutorial
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Hi-index | 0.00 |
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.