A use of fast and slow memories in list-processing languages
Communications of the ACM
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
LISP 1.5 Programmer's Manual
Incremental incrementally compacting garbage collection
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
A facility for defining and manipulating generalized data structures
ACM Transactions on Database Systems (TODS)
Z-Resolution: Theorem-Proving with Compiled Axioms
Journal of the ACM (JACM)
ACM Computing Surveys (CSUR)
A Survey of Data Structures for Computer Graphics Systems
ACM Computing Surveys (CSUR)
Garbage Collection of Linked Data Structures
ACM Computing Surveys (CSUR)
Compact Encodings of List Structure
ACM Transactions on Programming Languages and Systems (TOPLAS)
An empirical study of list structure in Lisp
Communications of the ACM
An efficient, incremental, automatic garbage collector
Communications of the ACM
Communications of the ACM
Communications of the ACM
Requirements for advanced programming systems for list processing
Communications of the ACM
List tracing in systems allowing multiple cell-types
Communications of the ACM
Comment on Cheney's list-compaction algorithm
Communications of the ACM
Communications of the ACM
New LISP techniques for a paging environment
Communications of the ACM
An ALGOL-based associative language
Communications of the ACM
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
A note on the efficiency of a LISP computation in a paged machine
Communications of the ACM
Paging as a "language processing" task
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Paging in a distributed virtual memory
Trends in functional programming
List-tracing in systems allowing multiple cell-types
SYMSAC '71 Proceedings of the second ACM symposium on Symbolic and algebraic manipulation
SYMSAC '71 Proceedings of the second ACM symposium on Symbolic and algebraic manipulation
The design of a template structure for a generalized data structure definition facility
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Garbage collection for embedded systems
Proceedings of the 4th ACM international conference on Embedded software
ACM SIGART Bulletin
Garbage collection without paging
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Syncopation: generational real-time garbage collection in the metronome
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
An overlay facility for LISP programs
ACM SIGSAM Bulletin
Data structure models for programming languages
ACM SIGPLAN Notices
Data and storage structures for interactive graphics
ACM SIGPLAN Notices
Data structures for computer graphics
ACM SIGPLAN Notices
Eventrons: a safe programming construct for high-frequency hard real-time applications
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
AFIPS '68 (Fall, part II) Proceedings of the December 9-11, 1968, fall joint computer conference, part II
LISTAR: Lincoln Information Storage and Associative Retrieval system
AFIPS '70 (Spring) Proceedings of the May 5-7, 1970, spring joint computer conference
Storage organization and management in TENEX
AFIPS '72 (Fall, part I) Proceedings of the December 5-7, 1972, fall joint computer conference, part I
Waste not, want not: resource-based garbage collection in a shared environment
Proceedings of the international symposium on Memory management
Hi-index | 48.40 |
In an ideal list-processing system there would be enough core memory to contain all the data and programs. Described in this paper are a number of techniques that have been used to build a LISP system utilizing a drum for its principal storage medium, with a surprisingly low time penalty for use of this slow storage device. The techniques include careful segmentation of system programs, allocation of virtual memory to allow address arithmetic for type determination, and a special algorithm for building reasonably linearized lists. A scheme for binding variables is described which is good in this environment and allows for complete compatibility between compiled and interpreted programs with no special declarations.