Static Memory Management for Logic Programming Languages
Logic programming (LP) languages aim to free programmers from procedural details such as memory management tasks. One classical, automatic memory management technique in logic programming is to use a heap memory for all the structured terms and rely on backtracking and on a runtime garbage collector to reclaim memory. While efficient implementation of garbage collectors for LP languages can reuse more than 90% heap space, they introduce performance penalties to the execution of a program because the collectors need to temporarily stop the main program to do their job.
KeywordsLogic Programming Memory Management Garbage Collector Logic Programming Language Program Language Design
- 1.Aiken, A., Fahndrich, M., Levien, R.: Better static memory management: Improving region-based analysis of higher-order languages. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 174–185 (1995)Google Scholar
- 3.Grossman, D., Morrisett, G., Jim, T., Hicks, M., Wang, Y., Cheney, J.: Region-based memory management in Cyclone. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, pp. 282–293 (2002)Google Scholar
- 4.Henglein, F., Makholm, H., Niss, H.: A direct approach to control-flow sensitive region-based memory management. In: Principles and Practice of Declarative Programming, pp. 175–186 (2001)Google Scholar
- 6.Mazur, N.: Compile-time garbage collection for the declarative language Mercury. PhD thesis, Dept. of Computer Science, Katholieke Universiteit Leuven (May 2004)Google Scholar