ACM Home Page
Please provide us with feedback. Feedback
Unrolling lists
Full text PdfPdf (1.08 MB)
Source Conference on LISP and Functional Programming archive
Proceedings of the 1994 ACM conference on LISP and functional programming table of contents
Orlando, Florida, United States
Pages: 185 - 195  
Year of Publication: 1994
ISBN:0-89791-643-3
Also published in ...
Authors
Zhong Shao  Princeton University and Department of Computer Science, Princeton University, 35 Olden Street, Princeton NJ
John H. Reppy  AT&T Bell Laboratories, 600 Mountain Avenue, Murray Hill, NJ
Andrew W. Appel  Department of Computer Science, Princeton University, 35 Olden Street, Princeton NJ
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGART: ACM Special Interest Group on Artificial Intelligence
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 30,   Citation Count: 15
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/182409.182453
What is a DOI?

ABSTRACT

Lists are ubiquitous in functional programs, thus supporting lists efficiently is a major concern to compiler writers for functional languages. Lists are normally represented as linked cons cells, with each cons cell containing a car (the data) and a cdr (the link); this is inefficient in the use of space, because 50% of the storage is used for links. Loops and recursions on lists are slow on modern machines because of the long chains of control dependencies (in checking for nil) and data dependencies (in fetching cdr fields).We present a data structure for “unrolled lists”, where each cell has several data items (car fields) and one link (cdr). This reduces the memory used for links, and it significantly shortens the length of control-dependence and data-dependence chains in operations on lists.We further present an efficient compile-time analysis that transforms programs written for “ordinary” lists into programs on unrolled lists. The use of our new representation requires no change to existing programs.We sketch the proof of soundness of our analysis—which is based on refinement types—and present some preliminary measurements of our technique.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
William E. Aitken and John H. Reppy. Abstract value constructors. In A CM SIGPLAN Workshop on ML and its Applications, June 1992.
 
2
 
3
Andrew W. Appel and David B. MacQueen. Standard ML of New Jersey. In Martin Wirsing, editor, Third Int'l Syrup. on Prog. Lang. Implementation and Logic Programming, pages 1-13, New York, August 1991. Springer-Ver}ag.
4
5
6
7
 
8
9
 
10
L. P. Deutsch. A lisp machine with very compact programs. In Proc. 3rd IJA CI, pages 697-703, 1973.
 
11
Tim Freeman. Carnegie Mellon University, personal communication, 1992.
12
 
13
R. Greenblatt. Lisp machine progress report memo 444. TechnicMreport, A.i. Lab., M.I.T., Cambridge, MA, August 1977.
14
15
16
17
 
18
 
19
 
20
 
21
 
22
 
23
24
 
25
D. Weinreb and D. Moon. Lisp machine manual. Technical report, Symolics Corp., Cambridge, Mass., 1981.

CITED BY  15

Collaborative Colleagues:
Zhong Shao: colleagues
John H. Reppy: colleagues
Andrew W. Appel: colleagues