|
ABSTRACT
An object encoding translates a language with object primitives to one without. Similarly, a class encoding translates classes into other primitives. Both are important theoretically for comparing the expressive power of languages and for transferring results from traditional languages to those with objects and classes. Both are also important foundations for the implementation of object-oriented languages as compilers typically include a phase that performs these translations.This paper describes a language with a primitive notion of classes and objects and presents an encoding of this language into one with records and functions. The encoding uses two techniques often used in compilers for single-inheritance class-based object-oriented languages: the self-application semantics and the method-table technique. To type the output of the encoding, the encoding uses a new formulation of self quantifiers that is more powerful than previous approaches.
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.
 |
AC93
|
|
| |
AC96
|
|
 |
ACV96
|
Martín Abadi , Luca Cardelli , Ramesh Viswanathan, An interpretation of objects and object types, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.396-409, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237809]
|
| |
BCP99
|
|
| |
BF98
|
|
| |
Bru94
|
Kim Bruce. A paradigmatic object-oriented programming language: Design, static typing and semantics. Journal of Functional Programming, 4(2):127-206, April 1994.
|
| |
BSvG95
|
|
| |
Car88
|
|
 |
CCH+89
|
Peter Canning , William Cook , Walter Hill , Walter Olthoff , John C. Mitchell, F-bounded polymorphism for object-oriented programming, Proceedings of the fourth international conference on Functional programming languages and computer architecture, p.273-280, September 11-13, 1989, Imperial College, London, United Kingdom
[doi> 10.1145/99370.99392]
|
| |
CG99
|
|
 |
CHC90
|
|
| |
Coo89a
|
|
| |
Coo89b
|
William Cook. A proposal for making Eiffel type-safe. In 3rd European Conference on Object-Oriented Programming, pages 57-72, Nottingham, UK, July 1989. Cambridge University Press.
|
| |
Cra99
|
Karl Crary. Simple, effcient object encoding using intersection types. Technical Report CMU-CS-99-100, Carnegie Mellon University, Pittsburgh, PA 15213, USA, 1999.
|
| |
ESTZ95
|
|
| |
FHM94
|
|
| |
Fis96
|
|
| |
FM95a
|
|
| |
FM95b
|
|
| |
FM96
|
|
| |
FM98
|
|
| |
GJS96
|
|
| |
Gle99a
|
Neal Glew. Object closure conversion. In Andrew Gordon and Andrew Pitts, editors, 3rd International Workshop on Higher Order Operational Techniques in Semantics, volume 26 of El ectronic Notes in Theoretical Computer Science, Paris, France, September 1999. Elsevier. http://www.elsevier.nl/ locate/entcs/volume26.html.
|
 |
Gle99b
|
|
| |
Gle00a
|
Neal Glew. An efficient class and object encoding. Technical Report STAR-TR-00.07-02, STAR Lab, InterTrust Technologies Corporation, 4750 Patrick Henry Drive, Santa Clara, CA 95054-1851, USA, July 2000.
|
| |
Gle00b
|
|
| |
Hic
|
Jason Hickey. Predicative type-theoretic interpretation of objects. Unpublished, author's contact: jyh@cs.cornell.edu.
|
 |
HP95
|
|
| |
HP98
|
Martin Hofmann and Benjamin Pierce. Type destructors. In 5th International Workshop on Foundations of Object Oriented Programming Languages, pages 3-1 to 3-11, San Diego, CA, USA, January 1998.
|
 |
Kam88
|
|
| |
KPS95
|
Dexter Kozen, Jens Palsberg, and Michael Schwartzbach. Efficient recursive subtyping. Mathematical Structures in Computer Science, 5(1):113-125, March 1995.
|
| |
KR94
|
|
 |
LST99
|
|
| |
MCG+99
|
Greg Morrisett, Karl Crary, Neal Glew, Dan Grossman, Richard Samuels, Frederick Smith, David Walker, Stephanie Weirich, and Steve Zdancewic. TALx86: A realistic typed assembly language. In ACM SIGPLAN Workshop on Compiler Support for System Software, volume 0228 of INRIA Research Reports, Atlanta, GA, USA, May 1999.
|
 |
Mit90
|
|
| |
MTC+96
|
Greg Morrisett, David Tarditi, Perry Cheng, Christopher Stone, Robert Harper, and Peter Lee. The TIL/ML compiler: Performance and safety through types. In ACM SIGPLAN Workshop on Compiler Support for System Software, Tucson, AZ, USA, February 1996.
|
 |
MWCG99
|
|
 |
NL98
|
|
 |
PT94
|
|
 |
Red98
|
|
| |
Rém94
|
|
| |
RR96a
|
John Reppy and Jon Riecke. Classes in Object MLvia modules. In3rd International Workshop on Foundations of Object Oriented Programming Languages, New Brunswick, NJ, USA, July 1996.
|
 |
RR96b
|
|
 |
RV97
|
|
 |
TMC+96
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.181-192, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
| |
Vis98
|
|
| |
Vou98
|
Jerome Vouillon. Using modules as classes. In 5th International Workshop on Foundations of Object Oriented Programming Languages, pages 4-1 to 4-10, San Diego, CA, USA, January 1998.
|
CITED BY 7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vijay S. Menon , Neal Glew , Brian R. Murphy , Andrew McCreight , Tatiana Shpeisman , Ali-Reza Adl-Tabatabai , Leaf Petersen, A verifiable SSA program representation for aggressive compiler optimization, ACM SIGPLAN Notices, v.41 n.1, p.397-408, January 2006
|
|
|
|
|
|
|
|