An abstract machine for restricted AND-parallel execution of logic programs
Proceedings on Third international conference on logic programming
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Applications of the Aurora parallel Prolog system to computational molecular biology
ILPS '93 Proceedings of the 1993 international symposium on Logic programming
Segment order preserving copying garbage collection for WAM based Prolog
SAC '96 Proceedings of the 1996 ACM symposium on Applied Computing
Concurrency in Prolog using threads and a shared database
Proceedings of the 1999 international conference on Logic programming
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program Transformations and WAM-Support for the Compilation of Definite Metaprograms
Proceedings of the First Russian Conference on Logic Programming
A Most Specific Method Finding Algorithm for Reflection Based Dynamic Prolog-to-Java Interfaces
PADL '01 Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages
Segment Order Preserving and Generational Garbage Collection for Prolog
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Garbage Collection Algorithms for Java-Based Prolog Engines
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
A Novel Term Compression Scheme and Data Representation in the BinWAM
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Fluents: A Refactoring of Prolog for Uniform Reflection an Interoperation with External Objects
CL '00 Proceedings of the First International Conference on Computational Logic
Copying Garbage Collection for the WAM: To Mark or Not to Mark?
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
P#: a concurrent prolog for the .NET framework
Software—Practice & Experience
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Proceedings of the sixth workshop on Declarative aspects of multicore programming
Prolog Cafe: a prolog to java translator system
INAP'05 Proceedings of the 16th international conference on Applications of Declarative Programming and Knowledge Management
Lightweight compilation of (c)lp to javascript*
Theory and Practice of Logic Programming
Hi-index | 0.00 |
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.