Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Open access

Compact Encodings of List Structure

Published: 01 October 1979 Publication History

Abstract

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.

References

[1]
BAKER, H.G., JR. List processing in real time on a serial computer. Comm. ACM 21, 4 (April 1978), 280-294.
[2]
BATES, M. The use of syntax in a speech understanding system. IEEE Trans. Acoustics, Speech, and Signal Processing 23, 1 (Feb. 1975), 112-117.
[3]
BAWDEN, A., GREENBLATT, R., HOLLOWAY, J., KNIGHT, T., MOON, D., AND WEINREB, D. LISP machine progress report. Memo 444, M.I.T. Artificial Intelligence Lab., Cambridge, Mass., Aug. 1977.
[4]
BOBROW, D.G. A note on hash linking. Comm. ACM 18, 7 (July 1975), 413-415.
[5]
BOBROW, D.G., BURCHPIEL, J.D., MURPHY, D.L., AND TOMLINSON, R.S. TENEX, a paged time sharing system for the PDP-10. Comm. ACM 15, 3 (March 1972), 135-143.
[6]
BOBROW, D.G., AND MURPHY, D.L. The structure of a LISP system using two-level storage. Comm. ACM 10, 3 (March 1967), 155-159.
[7]
CHENSY, C.J. A nonrecursive list compacting algorithm. Comm. ACM 13, 11 (Nov. 1970), 677- 678.
[8]
CLARI~, D.W. An efficient list-moving algorithm using constant workspace. Comm. ACM 19, 6 (June 1976), 352-354.
[9]
CLARK, D.W. List structure: measurements, algorithms, and encodings. Ph.D. Thesis, Dep. Comptr. Sci., Carnegie-Mellon U., Aug. 1976.
[10]
CLARK, D.W. Measurementsof dynamic list structure use in Lisp. IEEE Trans. Software Eng. SE-5, i (Jan. 1979), 51-59.
[11]
CLARK, D.W., AND GREEN, C.C. An empirical study of list structure in Lisp. Comm. ACM 20, 2 (Feb. 1977), 78-87.
[12]
DEUrSCH, L.P. A LISP machine with very compact programs. Proc. 3rd IJCAI, Stanford, Calif., 1973, pp. 697-703.
[13]
DEUTSCH, L.P. An interactive program verifier. Ph.D. Thesis, Comptr. Sci. Dep., U. of California, Berkeley; May 1973.
[14]
DEUTSCH, L.P. Experience with a microprogrammed Interlisp system. Proc. 11th Annu. Microprogramming Workshop, Asilomar Conf. Ground, Pacific Gro/le, Calif.,' Nov. 1978.'
[15]
DEUTSCH, L.P., a~qO BOBROW, D.G. An efficient, incremental, automatic garbage collector. Comm. ~' ACM 19, 9 (Sept. 1976), 522-526.
[16]
FENICHEL, R.R., AND YOCHSLSON, J.C. A LISP garbage-collector for virtual-memory computer systems. Comm. ACM 12, 11 (Nov. 1969), 611-612.
[17]
GREENBLATT, R. The LISP machine. Working Paper 79, M.I.T. Artificial Intelligence Lab., Cambridge, Mass., No~. 1974.
[18]
HANSEN, W.J. Compact list representation: definition, garbage collection, and system implemen~ tation. Comm. ACM 12, 9 (Sept. 1969), 499-507.
[19]
KNUTH, D.E. The Art of Computer Programming, Vol. 3: Sorting and Searching. Addison- Wesley, Reading, Mass., 1973.
[20]
McCARTHY, J., ET AL. LISP 1.5 Programmer's Manual. M.I.T. Press, Cambridge, Mass., 1962.
[21]
MINSKY, M.L. A LISP garbage collector algorithm using serial secondary storage. Memo. 58 (rev.), M.I.T, Artificial Intelligence Proj., Cambridge, Mass., Dec. 1963.
[22]
MORRm, F.L. A time- and space-efficient garbage compaction algorithm. Corn,re. ACM21, 8 (Aug. 1978), 662-665.
[23]
SACERDOTI, E.D. A Structure for Plans and Behavior. Else~er North-Holland, New Yor~, 1977.
[24]
SHEm, B.A. Median split trees: a fast lookup technique for frequently occu~ing keys. Comm. ACM21, 11 (Nov. 1978), 947-958.
[25]
SMITH, D.H., MASlNTER, L.M., AND SRIDHZRAN, N.S. Heuristic DENDRAL: analysis of molecular structure. In W.T. Wipke, S. Heller, R- Feldman, and E. Hyde, Eds., Computer Representation and Manipulaton of Chemical Information. Wiley, New York, 1974.
[26]
TEITELMAN, W. INTERLISP Reference Manual. Xerox Palo Alto Research CenteL Palo Alto~ Calif., 1974.
[27]
ZIPF, G.Ki Human Behavior and the Principle of Least Effort: An Introductioa to Human Ecology. Hafner, New York, 1949.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 1, Issue 2
Oct. 1979
160 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/357073
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1979
Published in TOPLAS Volume 1, Issue 2

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)74
  • Downloads (Last 6 weeks)8
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2005)Mark DURING sweep rather than mark THEN sweepPARLE '89 Parallel Architectures and Languages Europe10.1007/3540512845_42(224-237)Online publication date: 26-Jun-2005
  • (2005)Dynamic storage allocation: A survey and critical reviewMemory Management10.1007/3-540-60368-9_19(1-116)Online publication date: 1-Jun-2005
  • (2003)Fast Functional ListsImplementation of Functional Languages10.1007/3-540-44854-3_3(34-50)Online publication date: 18-Jun-2003
  • (2002)Fast functional listsProceedings of the 14th international conference on Implementation of functional languages10.5555/1756972.1756975(34-50)Online publication date: 16-Sep-2002
  • (1999)Memory forwardingACM SIGARCH Computer Architecture News10.1145/307338.30098727:2(88-99)Online publication date: 1-May-1999
  • (1999)Memory forwardingProceedings of the 26th annual international symposium on Computer architecture10.1145/300979.300987(88-99)Online publication date: 2-May-1999
  • (1999)Memory forwarding: enabling aggressive layout optimizations by guaranteeing the safety of data relocationProceedings of the 26th International Symposium on Computer Architecture (Cat. No.99CB36367)10.1109/ISCA.1999.765942(88-99)Online publication date: 1999
  • (1994)Unrolling listsACM SIGPLAN Lisp Pointers10.1145/182590.182453VII:3(185-195)Online publication date: 1-Jul-1994
  • (1994)Unrolling listsProceedings of the 1994 ACM conference on LISP and functional programming10.1145/182409.182453(185-195)Online publication date: 1-Jul-1994
  • (1990)Compiling Lisp programs for parallel executionLisp and Symbolic Computation10.1007/BF018060614:1(29-99)Online publication date: 1-Dec-1990
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media