The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
An empirical study of list structure in Lisp
Communications of the ACM
List processing in real time on a serial computer
Communications of the ACM
A time- and space-efficient garbage compaction algorithm
Communications of the ACM
Median split trees: a fast lookup technique for frequently occuring keys
Communications of the ACM
An efficient list-moving algorithm using constant workspace
Communications of the ACM
An efficient, incremental, automatic garbage collector
Communications of the ACM
Communications of the ACM
TENEX, a paged time sharing system for the PDP - 10
Communications of the ACM
A nonrecursive list compacting algorithm
Communications of the ACM
Structure of a LISP system using two-level storage
Communications of the ACM
Compact list representation: definition, garbage collection, and system implementation
Communications of the ACM
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
Experience with a microprogrammed Interlisp system
MICRO 11 Proceedings of the 11th annual workshop on Microprogramming
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
A structure for plans and behavior.
A structure for plans and behavior.
List structure: measurements, algorithms, and encodings.
List structure: measurements, algorithms, and encodings.
LISP 1.5 Programmer's Manual
Survey on special purpose computer architectures for AI
ACM SIGART Bulletin
An architecture for efficient Lisp list access
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
Incremental incrementally compacting garbage collection
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
A programmable interface language for heterogeneous distributed systems
ACM Transactions on Computer Systems (TOCS)
Storage reclamation in object oriented database systems
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
ISCA '99 Proceedings of the 26th annual international symposium on Computer architecture
An efficient LISP-execution architecture with a new representation for list structures
ISCA '85 Proceedings of the 12th annual international symposium on Computer architecture
Compact Storage of Binary Trees
ACM Transactions on Programming Languages and Systems (TOPLAS)
Design of a Lisp machine - FLATS
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Address/memory management for a gigantic LISP environment or, GC considered harmful
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Divide and concer: Data structuring in applicative multiprocessing systems
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Overview and status of DoradoLisp
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
A preliminary survey of artificial intelligence machines
ACM SIGART Bulletin
Address/memory management for a gigantic LISP environment or, GC considered harmful
ACM SIGPLAN Lisp Pointers
Lisp hardware architecture: the Explorer II and beyond
ACM SIGPLAN Lisp Pointers
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Hi-index | 0.00 |
List structures provide a general mechanism for representing easily changed structured data, but can introduce inefficiencies in the use of space when fields of uniform size are used to contain pointers to data and to link the structure. Empirically determined regularity can be exploited to provide more space-efficient encodings without losing the flexibility inherent in list structures. The basic scheme is to provide compact pointer fields big enough to accommodate most values that occur in them and to provide “escape” mechanisms for exceptional cases. Several examples of encoding designs are presented and evaluated, including two designs currently used in Lisp machines. Alternative escape mechanisms are described, and various questions of cost and implementation are discussed. In order to extrapolate our results to larger systems than those measured, we propose a model for the generation of list pointers and we test the model against data from two programs. We show that according to our model, list structures with compact cdr fields will, as address space grows, continue to be compacted well with a fixed-width small field. Our conclusion is that with a microcodable processor, about a factor of two gain in space efficiency for list structure can be had for little or no cost in processing time.