Integrated symbol table, engine and heap memory management in multi-engine prolog

  • Authors:
  • Paul Tarau

  • Affiliations:
  • University of North Texas, Denton, TX, USA

  • Venue:
  • Proceedings of the international symposium on Memory management
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe an integrated solution to symbol, heap and logic engine memory management in a context where exchanges of arbitrary Prolog terms occur between multiple dynamically created engines, implemented in a new Java-based experimental Prolog system. As our symbols represent not just Prolog atoms, but also handles to Java objects (including arbitrary size integers and decimals), everything is centered around a symbol garbage collection algorithm ensuring that external objects are shared and exchanged between logic engines efficiently. Taking advantage of a tag-on-data heap representation of Prolog terms, our algorithm performs in-place updates of live symbol references directly on heap cells. With appropriate fine tuning of collection policies our algorithm provides an integrated memory management solution for Prolog systems, with amortized cost dominated by normally occurring heap garbage collection costs.