E. Miranda. OOPSLA'99 Workshop on Simplicity, Performance and Portability in Virtual Machine Design, Denver, CO, (November 1999)
Abstract
Smalltalk-80 provides a reification of execution state in the form of context objects which represent
procedure activation records. Smalltalk-80 also provides full closures with indefinite extent. These
features pose interesting implementation challenges because a naïve implementation entails instantiating
context objects on every method activation, but typical Smalltalk-80 programs obey stack discipline for the
vast majority of activations. Both software and hardware implementations of Smalltalk-80 have mapped
contexts and closure activations to stack frames but not without overhead when compared to traditional
stack-based activation and return in “conventional” languages. We present a new design for contexts and
closures that significantly reduces the overall overhead of these features and imposes overhead only in code
that actually manipulates execution state in the form of contexts.
%0 Conference Paper
%1 ViWorks
%A Miranda, Eliot
%B OOPSLA'99 Workshop on Simplicity, Performance and Portability in Virtual Machine Design
%C Denver, CO
%D 1999
%K Activation Closures Contexts Frames Optimization Records Representation Smalltalk Stack VMLecture VisualWorks
%T Context Management in VisualWorks 5i
%U http://www.esug.org/data/Articles/misc/oopsla99-contexts.pdf
%X Smalltalk-80 provides a reification of execution state in the form of context objects which represent
procedure activation records. Smalltalk-80 also provides full closures with indefinite extent. These
features pose interesting implementation challenges because a naïve implementation entails instantiating
context objects on every method activation, but typical Smalltalk-80 programs obey stack discipline for the
vast majority of activations. Both software and hardware implementations of Smalltalk-80 have mapped
contexts and closure activations to stack frames but not without overhead when compared to traditional
stack-based activation and return in “conventional” languages. We present a new design for contexts and
closures that significantly reduces the overall overhead of these features and imposes overhead only in code
that actually manipulates execution state in the form of contexts.
@inproceedings{ViWorks,
abstract = {Smalltalk-80 provides a reification of execution state in the form of context objects which represent
procedure activation records. Smalltalk-80 also provides full closures with indefinite extent. These
features pose interesting implementation challenges because a naïve implementation entails instantiating
context objects on every method activation, but typical Smalltalk-80 programs obey stack discipline for the
vast majority of activations. Both software and hardware implementations of Smalltalk-80 have mapped
contexts and closure activations to stack frames but not without overhead when compared to traditional
stack-based activation and return in “conventional” languages. We present a new design for contexts and
closures that significantly reduces the overall overhead of these features and imposes overhead only in code
that actually manipulates execution state in the form of contexts.},
added-at = {2008-07-14T18:19:02.000+0200},
address = {Denver, CO},
author = {Miranda, Eliot},
biburl = {https://www.bibsonomy.org/bibtex/23012488feb41ac87248bef4685023ef7/gron},
booktitle = {OOPSLA'99 Workshop on Simplicity, Performance and Portability in Virtual Machine Design},
citeseerurl = {http://citeseer.ist.psu.edu/288980.html},
description = {VMLecture},
institution = {ParcPlace Division, CINCOM, Inc.},
interhash = {aa346bc173218e5454ab99173561a118},
intrahash = {3012488feb41ac87248bef4685023ef7},
keywords = {Activation Closures Contexts Frames Optimization Records Representation Smalltalk Stack VMLecture VisualWorks},
month = {November},
timestamp = {2012-07-02T11:21:07.000+0200},
title = {Context Management in VisualWorks 5i},
url = {http://www.esug.org/data/Articles/misc/oopsla99-contexts.pdf},
year = 1999
}