[Prev][Next][Index][Thread]
New Paper: Object Closure Conversion
I am pleased to announce the following paper. A short version will be
presented at HOOTS'99 in September in Paris. A longer version with
proofs is available as Cornell University Computer Science technical
report TR99-1763. Both versions can be obtained from my web page:
http://www.cs.cornell.edu/glew/paper-list.html.
Neal Glew
----------------------------------------------------------------------
OBJECT CLOSURE CONVERSION
Neal Glew
An integral part of implementing functional languages is closure
conversion---the process of converting code with free variables into
closed code and auxiliary data structures. Closure conversion has
been extensively studied in this context, but also arises in languages
with first-class objects. In fact, one variant of Java's inner
classes are an example of objects that need to be closure converted,
and the transformation for converting these inner classes into Java
Virtual Machine classes is an example of closure conversion.
This paper argues that a direct formulation of object closure
conversion is interesting and gives further insight into general
closure conversion. It presents a formal closure-conversion
translation for a second-order object language and proves it correct.
The translation and proof generalise to other object-oriented
languages, and the paper gives some examples to support this
statement. Finally, the paper discusses the well known connection
between function closures and single-method objects. This connection
is formalised by showing that an encoding of functions into objects,
object closure conversion, and various object encodings compose to
give various closure-conversion translations for functions.