Garbarge collection for Prolog based on WAM
Communications of the ACM
The family of concurrent logic programming languages
ACM Computing Surveys (CSUR)
Generation type garbage collection for parallel logic languages
Proceedings of the 1990 North American conference on Logic programming
Memory allocation costs in large C and C++ programs
Software—Practice & Experience
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
A simple generational real-time garbage collection scheme
New Generation Computing
Understanding Memory Management in Prolog Systems
Proceedings of the 17th International Conference on Logic Programming
A Novel Implementation of the Extended Andorra Model
PADL '01 Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
A Simple and Efficient Copying Garbage Collector for Prolog
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
So Many WAM Variations, So Little Time
CL '00 Proceedings of the First International Conference on Computational Logic
From simulation to practice: cache performance study of a Prolog system
Proceedings of the 2002 workshop on Memory system performance
Hi-index | 0.00 |
A critical issue in the design of logic programming systems is their memory performance, both in terms of total memory usage and locality in memory accesses. BEAM, as most modern Prolog systems, requires both good emulator design and good memory performance for best performance. We report on a detailed study of the memory management techniques used on our sequential implementation of the EAM. We address questions like how effective are the techniques the BEAM uses to recover and reuse memory space, how garbage collection affects performance and how to classify and unify variables in a EAM environment. We also propose a finer variable allocation scheme to reduce memory overheads that is quite effective at reducing memory pressure, with only a small overhead.