Detection and optimization of functional computations in Prolog
Proceedings on Third international conference on logic programming
An application of abstract interpretation of logic programs: occur check reduction
Proc. of the European symposium on programming on ESOP 86
Analysis of functional programs to detect run-time garbage cells
ACM Transactions on Programming Languages and Systems (TOPLAS)
Detecting conflicts between structure accesses
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Foundations of deductive databases and logic programming
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
LIPS on MIPS: results from Prolog compiler for a RISC
Logic programming
A backwards analysis for compile-time garbage collection
Proceedings of the third European symposium on programming on ESOP '90
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
The benefits of global dataflow analysis for an optimizing Prolog compiler
Proceedings of the 1990 North American conference on Logic programming
Can logic programming execute as fast as imperative programming?
Can logic programming execute as fast as imperative programming?
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Efficient dataflow analysis of logic programs
Journal of the ACM (JACM)
Implementation and analysis of compile-time garbage collection
New Generation Computing
The aggregate update problem in functional programming systems
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Shifting garbage collection overhead to compile time
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Systematic Semantic Approximations of Logic Programs
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
On the complexity of dataflow analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstract interpretation and low-level code optimization
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Semantic models and abstract interpretation techniques for inductive data structures and pointers
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Global analysis of constraint logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Garbage collection and local variable type-precision and liveness in Java virtual machines
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Compile-time memory reuse in logic programming languages through update in place
ACM Transactions on Programming Languages and Systems (TOPLAS)
Combining an improvement to PARMA trailing with trailing analysis
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Practical Aspects for a Working Compile Time Garbage Collection System for Mercury
Proceedings of the 17th International Conference on Logic Programming
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
On Enabling the WAM with Region Support
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Advanced Logic Program Specialisation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
A Framework for Analysis of Typed Logic Programs
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
A Module Based Analysis for Memory Reuse in Mercury
CL '00 Proceedings of the First International Conference on Computational Logic
Theory and Practice of Logic Programming
Hi-index | 0.00 |
For the class of applicative programming languages, efficient methods for reclaiming the memory occupied by released data structures constitute an important aspect of current implementations. The present article addresses the problem of memory reuse for logic programs through program analysis rather than by run-time garbage collection. The aim is to derive run-time properties that can be used at compile time to specialize the target code for a program according to a given set of queries and to automatically introduce destructive assignments in a safe and transparent way so that fewer garbage cells are created.The dataflow analysis is constructed as an application of abstract interpretation for logic programs. An abstract domain for describing structure-sharing and liveness properties is developed as are primitive operations that guarantee a sound and terminating global analysis. We explain our motivation for the design of the abstract domain, make explicit the underlying implementation assumptions, and discuss the precision of the results obtained by a prototype analyzer.