Thumbnail
Access Restriction
Subscribed

Author Bobrow, Daniel G. ♦ Wegbreit, Ben
Source ACM Digital Library
Content type Text
Publisher Association for Computing Machinery (ACM)
File Format PDF
Language English
Subject Keyword Coroutines ♦ Funarg problem ♦ Multitasking ♦ Functional arguments ♦ Retention ♦ Dendrarchy ♦ Control structures ♦ Environments ♦ Backtracking ♦ Stack allocation ♦ Label-valued variables ♦ Access environments ♦ Multiprocessor systems ♦ Dynamic storage allocation ♦ Extensible control structures
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.
Description Affiliation: Xerox Palo Alto Research Center, Palo Alto, CA (Bobrow, Daniel G.) || Harvard Univ., Cambridge, MA (Wegbreit, Ben)
Age Range 18 to 22 years ♦ above 22 year
Educational Use Research
Education Level UG and PG
Learning Resource Type Article
Publisher Date 2005-08-01
Publisher Place New York
Journal Communications of the ACM (CACM)
Volume Number 16
Issue Number 10
Page Count 13
Starting Page 591
Ending Page 603


Open content in new tab

   Open content in new tab
Source: ACM Digital Library