ACM Home Page
Please provide us with feedback. Feedback
A model and stack implementation of multiple environments
Full text PdfPdf (1.39 MB)
Source
Communications of the ACM archive
Volume 16 ,  Issue 10  (October 1973) table of contents
Pages: 591 - 603  
Year of Publication: 1973
ISSN:0001-0782
Authors
Daniel G. Bobrow  Xerox Palo Alto Research Center, Palo Alto, CA
Ben Wegbreit  Harvard Univ., Cambridge, MA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 53,   Citation Count: 54
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/362375.362379
What is a DOI?

ABSTRACT

Many control and access environment structures require that storage for a procedure activation exist at times when control is not nested within the procedure activated. This is straightforward to implement by dynamic storage allocation with linked blocks for each activation, but rather expensive in both time and space. This paper presents an implementation technique using a single stack to hold procedure activation storage which allows retention of that storage for durations not necessarily tied to control flow. The technique has the property that, in the simple case, it runs identically to the usual automatic stack allocation and deallocation procedure. Applications of this technique to multitasking, coroutines, backtracking, label-valued variables, and functional arguments are discussed. In the initial model, a single real processor is assumed, and the implementation assumes multiple-processes coordinate by passing control explicitly to one another. A multiprocessor implementation requires only a few changes to the basic technique, as described.


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
Bobrow, D.G. Storage management in Lisp. In Symbol Manipulation Languages and Techniques, Bobrow (Ed.), North- Holland Pub. Co., Amsterdam, 1968.
2
3
 
4
Dijkstra, E.W. Co-operating sequential processes. In Programm#lg Languages, Genuys (Ed.), Academic Press, New York, 1967.
 
5
Dijkstra, E.W. Recursive programming. Num. Math. 2 (1960), 312-318. Also in Programming Systems and Languages, S. Rosen (Ed.), McGraw-Hill, New York, 1967.
6
7
8
9
 
10
Hewitt, C. PLANNER: A language for manipulating models and proving theorems in a robot. Proc. Internat. Joint Conf. on Artif. lntell. Washington, D.C., May 1969.
 
11
IBM System/360, PL/I Language Reference Manual, Form C28-8201-2, IBM (1969).
 
12
Johnston, J.B. The contour model of block structured processes. in Tou and Wegner {23}, pp. 55-82.
 
13
 
14
 
15
16
17
 
18
Prenner, C. Multi-path control structures for programming languages. Ph.D. Th., Harvard U., Cambridge, Mass. May 1972.
 
19
Quam, L. Lisp 1.6 Ref. Manual. Stanford AI Lab.
20
 
21
Sussman, G.J., and McDermott, D. Why conniving is better than planning. Proc. AFIPS 1972 FJCC, Vol. 41, Part 2, AFIPS Press, Montvale, N.J., pp. 1171-1179.
 
22
Thomas, R.H. A model for process representation and synthesis. Ph.D. Th., Proj. MAC Rept. TR-87, M.I.T. Cambridge, Mass., 1971.
 
23
Tou, J., and Wegner, P. (Eds.) Sigplan Notices--Proc. Symp. on Data Structures in Prog. Lang., 6, 2 (Feb. 1971).
 
24
 
25
Wegbreit, B. Studies in extensible programming languages. Ph.D. Th., Harvard U., Cambridge, Mass. May 1970.
 
26
Wegbreit, B. The ECL programming system. Proc. AFIPS 1971 FJCC, Vol. 39, AFIPS Press, Montvale, N.J., pp. 253-262.
 
27
Wegner, P. Data structure models for programming languages. in Tou and Wegner {23}, pp. 55-82.
 
28
Weizenbaum, J. The funarg problem explained. M.I.T., Cambridge, Mass., Mar. 1968.

CITED BY  54

Collaborative Colleagues:
Daniel G. Bobrow: colleagues
Ben Wegbreit: colleagues