Live-structure dataflow analysis for Prolog
ACM Transactions on Programming Languages and Systems (TOPLAS)
Region-based memory management
Information and Computation
A region-based memory manager for prolog
Proceedings of the 2nd international symposium on Memory management
Practical Aspects for a Working Compile Time Garbage Collection System for Mercury
Proceedings of the 17th International Conference on Logic Programming
Dynamic Memory Management for Sequential Logic Programming Languages
IWMM '92 Proceedings of the International Workshop on Memory Management
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
So Many WAM Variations, So Little Time
CL '00 Proceedings of the First International Conference on Computational Logic
A direct approach to control-flow sensitive region-based memory management
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Runtime support for region-based memory management in Mercury
Proceedings of the 7th international symposium on Memory management
Path-sensitive region analysis for mercury programs
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Static region analysis for mercury
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Towards region-based memory management for mercury programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Static memory management for logic programming languages
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Hi-index | 0.00 |
Region-based memory management is an attractive alternative to garbage collection. It relies on a compile-time analysis to annotate the program with explicit allocation and deallocation instructions, where lifetimes of memory objects are grouped together in regions. This paper investigates how to adapt the runtime part of region-based memory management to the WAM setting.We present additions to the memory architecture and instruction set of the WAM that are necessary to implement regions. We extend an optimized WAM-based Prolog implementation with a region-based memory manager which supports backtracking with instant reclamation, and cuts. The performance of region-based execution is compared with that of the baseline garbage-collected implementation on several benchmark programs. A region-enabled WAM performs competitively and often results in time and/or space improvements.