ACM Home Page
Please provide us with feedback. Feedback
The dream of a lifetime: A lazy variable extent mechanism
Full text PdfPdf (937 KB)
Source Conference on LISP and Functional Programming archive
Proceedings of the 1980 ACM conference on LISP and functional programming table of contents
Stanford University, California, United States
Pages: 163 - 172  
Year of Publication: 1980
Authors
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 18,   Citation Count: 14
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/800087.802802
What is a DOI?

ABSTRACT

We define a “rack”, a data abstraction hybrid of a register and a stack. It is used for encapsulating the behavior of the kind of register whose contents may have an extent which requires that it be saved during the execution of an unknown piece of code. A rack can be implemented cleverly to achieve performance benefits over the usual implementation of a stack discipline. The basic idea is that we interpose a state machine controller between the rack abstraction and its stack/registers. This controller can act as an on-the-fly run-time peephole optimizer, eliding unnecessary stack operations. We demonstrate the sorts of savings one might expect by using cleverly implemented racks in the context of a particular caller-saves implementation of an interpreter for the SCHEME dialect of LISP. For sample problems we can expect that only one out of every four pushes that would be done by a conventional machine will be done by the clever version.


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
Hewitt, Carl. "Viewing Control Structures as Patterns of Passing Messages." AI Journal 8, 3 (June 1977), 323-364.
2
 
3
Hauck, E.A., and Dent, B.A. "Burroughs' B6500/B7500 Stack Mechanism." Proc. AFIPS Spring Joint Computer Conference Vol. 32 (1968), 245-251.
 
4
McDermott, Drew V. and Sussman, Gerald Jay. The CONNIVER Reference Manual. AI Memo 295a. MIT AI Lab (January 1974).
 
5
Steele, Guy Lewis Jr., and Sussman, Gerald Jay. The Dream of a Lifetime: A Lazy Scoping Mechanism. AI Memo 527. MIT AI Lab (Cambridge, November 1979).
 
6
 
7
Bawden, Alan; Greenblatt, Richard; Holloway, Jack; Knight, Thomas; Moon, David; and Weinreb, Daniel. LISP Machine Progress Report. AI Memo 444. MIT AI Lab (August 1977).
 
8
Moses, Joel. The Function of FUNCTION in LISP. AI Memo 199. MIT AI Lab (June 1970).
 
9
Steele, Guy Lewis Jr., and Sussman, Gerald Jay. The Revised Report on SCHEME: A Dialect of LISP. MIT AI Memo 452 (Jan. 1978).
 
10
 
11
Steele, Guy Lewis Jr., and Sussman, Gerald Jay. "Storage Management in a LISP-Based Processor." Proc. Caltech Conference on Very Large Scale Integration (Pasadena, January 1979).
 
12
Steele, Guy Lewis Jr., and Sussman, Gerald Jay. Design of LISP-Based Processors... AI Memo 514. MIT AI Lab (March 1979).
 
13
Holloway, Jack; Steele, Guy L., Jr.; Sussman, Gerald Jay; and Bell, Alan. The SCHEME-79 Chip. AI Memo 559. MIT AI Lab (Dec. 1979).
14
 
15
Goldberg, Adele, and Kay, Alan. Smalltalk-72 Instruction Manual. Learning Research Group, Xerox Palo Alto Research Center (March 1976).
16
17

CITED BY  14

Collaborative Colleagues:
Guy Lewis Steele, Jr.: colleagues
Gerald Jay Sussman: colleagues