An empirical study of list structure in Lisp
- 1 February 1977
- journal article
- Published by Association for Computing Machinery (ACM) in Communications of the ACM
- Vol. 20 (2), 78-87
- https://doi.org/10.1145/359423.359427
Abstract
Static measurements of the list structure of five large Lisp programs are reported and analyzed in this paper. These measurements reveal substantial regularity, or predictability, among pointers to atoms and especially among pointers to lists. Pointers to atoms are found to obey, roughly, Zipf's law, which governs word frequencies in natural languages; pointers to lists usually point to a location physically nearby in memory. The use of such regularities in the space-efficient representation of list structure is discussed. Linearization of lists, whereby successive cdrs (or cars) are placed in consecutive memory locations whenever possible, greatly strengthens the observed regularity of list structure. It is shown that under some reasonable assumptions, the entropy or information content of a car-cdr pair in the programs measured is about 10 to 15 bits before linearization, and about 7 to 12 bits after.Keywords
This publication has 9 references indexed in Scilit:
- A note on hash linkingCommunications of the ACM, 1975
- The use of syntax in a speech understanding systemIEEE Transactions on Acoustics, Speech, and Signal Processing, 1975
- TENEX, a paged time sharing system for the PDP - 10Communications of the ACM, 1972
- A nonrecursive list compacting algorithmCommunications of the ACM, 1970
- A LISP garbage-collector for virtual-memory computer systemsCommunications of the ACM, 1969
- Compact list representationCommunications of the ACM, 1969
- Structure of a LISP system using two-level storageCommunications of the ACM, 1967
- LISP 1.5 PROGRAMMER'S MANUALPublished by Defense Technical Information Center (DTIC) ,1962
- A Mathematical Theory of CommunicationBell System Technical Journal, 1948