Performance and evaluation of LISP systems
Performance and evaluation of LISP systems
Garbage Collection of Linked Data Structures
ACM Computing Surveys (CSUR)
An empirical study of list structure in Lisp
Communications of the ACM
Shifting garbage collection overhead to compile time
Communications of the ACM
An efficient, incremental, automatic garbage collector
Communications of the ACM
Anatomy of LISP
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
LISP 1.5 Programmer's Manual
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compile-time garbage collection by sharing analysis
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Polymorphic type reconstruction for garbage collection without tags
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Lively linear Lisp: “look ma, no garbage!”
ACM SIGPLAN Notices
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
ACM Letters on Programming Languages and Systems (LOPLAS)
Live-structure dataflow analysis for Prolog
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementation of the typed call-by-value λ-calculus using a stack of regions
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A general data dependence test for dynamic, pointer-based data structures
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Escape analysis: correctness proof, implementation and experimental results
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Escape analysis for object-oriented languages: application to Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automatic Accurate Live Memory Analysis for Garbage-Collected Languages
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
Fast Escape Analysis and Stack Allocation for Object-Based Programs
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Compiler-Cooperative Memory Management in Java
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Escape analysis for JavaTM: Theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
An Inference Algorithm for Guaranteeing Safe Destruction
Logic-Based Program Synthesis and Transformation
SAS'03 Proceedings of the 10th international conference on Static analysis
Hi-index | 0.00 |
We propose a method for detecting the generation of garbage cells by analyzing a source text written in a functional programming language which uses ordinary linked lists to implement list-type values. For a subexpression such as F(G( . . . )) in a program where the function values of F and G are of list type, if a cell c is created during the computation of G and if c does not appear in a list-type value of F, then c becomes a garbage cell at the end of the computation of F. We discuss this problem on the basis of formal languages derived from the functional program text and show some sufficient conditions that predict the generation of garbage cells. Also, we give an efficient algorithm to detect at compile time the generation of garbage cells which are linearly linked. We have implemented these algorithms in an experimental LISP system. By executing several sample programs on the system, we conclude that our method is effective in detecting the generation of garbage cells.