This paper describes how to extend the garbage collection for WAM so that it will shunt chains of bound variables if possible. Doing so has two advantages: 1. Space is saved by making it possible to deallocate the intermediate cells. This is particularly useful when those cells are associated with frozen goals. 2. Later dereferencing is speeded up by not having to follow long variable chains. The main complication of this optimization is the treatment of the trailed variables. We claim that all possible chains of variables are shunted by this algorithm. The algorithm has been implemented in SICStus Prolog, and benchmark results are presented in this paper. The full source code for the shunting algorithm is given in this paper.Revised versio...
Existing techniques for garbage collection and machine code optimizations can interfere with each ot...
AbstractCurrent WAM-type compilers employ incremental compilation, in which each procedure is compil...
An improved memory tagging scheme is introduced for symbolic programming languages that provide for ...
This paper describes how to extend the garbage collection for WAM so that it will shunt chains of bo...
Warren Abstract Machine (WAM) has become a generally accepted standard Prolog implementation techniq...
A non-algorithmic approach to garbage collection for the WAM heap is developed. A set of garbage c...
An extension of the WAM for handling uninitialized variables is presented. Our modification of the W...
The design and implementation of an incremental copying heap garbage collector for WAM-based Prolog ...
© 1996 ACM. We present a bottom-up copying garbage collector for WAM based Prolog. In contrast to th...
Tabling can be implemented in a (WAM-based) Prolog system by means of SLG-WAM: consumers suspend and...
High-level programming languages like Prolog free the programmer from the burden of explicit memory ...
The cost of backtracking has been identified as one of the bottlenecks in achieving peak performance...
The cost of backtracking has been identified as one of the bottlenecks in achieving peak performance...
The authors outline an experiment on Warren abstract machine (WAM) based compiler technology. In pre...
Machines, 3DPAM) execute the Prolog program parallel with fine-grain execution. Coarse-grain pieces ...
Existing techniques for garbage collection and machine code optimizations can interfere with each ot...
AbstractCurrent WAM-type compilers employ incremental compilation, in which each procedure is compil...
An improved memory tagging scheme is introduced for symbolic programming languages that provide for ...
This paper describes how to extend the garbage collection for WAM so that it will shunt chains of bo...
Warren Abstract Machine (WAM) has become a generally accepted standard Prolog implementation techniq...
A non-algorithmic approach to garbage collection for the WAM heap is developed. A set of garbage c...
An extension of the WAM for handling uninitialized variables is presented. Our modification of the W...
The design and implementation of an incremental copying heap garbage collector for WAM-based Prolog ...
© 1996 ACM. We present a bottom-up copying garbage collector for WAM based Prolog. In contrast to th...
Tabling can be implemented in a (WAM-based) Prolog system by means of SLG-WAM: consumers suspend and...
High-level programming languages like Prolog free the programmer from the burden of explicit memory ...
The cost of backtracking has been identified as one of the bottlenecks in achieving peak performance...
The cost of backtracking has been identified as one of the bottlenecks in achieving peak performance...
The authors outline an experiment on Warren abstract machine (WAM) based compiler technology. In pre...
Machines, 3DPAM) execute the Prolog program parallel with fine-grain execution. Coarse-grain pieces ...
Existing techniques for garbage collection and machine code optimizations can interfere with each ot...
AbstractCurrent WAM-type compilers employ incremental compilation, in which each procedure is compil...
An improved memory tagging scheme is introduced for symbolic programming languages that provide for ...