ACM Home Page
Please provide us with feedback. Feedback
Type-preserving compilation of Featherweight Java
Full text PdfPdf (379 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 24 ,  Issue 2  (March 2002) table of contents
Pages: 112 - 152  
Year of Publication: 2002
ISSN:0164-0925
Authors
Christopher League  Yale University, New Haven, CT
Zhong Shao  Yale University, New Haven, CT
Valery Trifonov  Yale University, New Haven, CT
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 40,   Citation Count: 7
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/514952.514954
What is a DOI?

ABSTRACT

We present an efficient encoding of core Java constructs in a simple, implementable typed intermediate language. The encoding, after type erasure, has the same operational behavior as a standard implementation using vtables and self-application for method invocation. Classes inherit super-class methods with no overhead. We support mutually recursive classes while preserving separate compilation. Our strategy extends naturally to a significant subset of Java, including interfaces and privacy. The formal translation using Featherweight Java allows comprehensible type-preservation proofs and serves as a starting point for extending the translation to new features. Our work provides a foundation for supporting certifying compilation of Java-like class-based languages in a type-theoretic framework.


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
2
 
3
4
 
5
Bruce, K. B. 1994. A paradigmatic object-oriented programming language: Design, static typing and semantics. J. Funct. Prog. 4, 2, 127--206.
 
6
7
 
8
Cardelli, L. and Leroy, X. 1990. Abstract types and the dot notation. In Proceedings of the IFIP Working Conference on Programming Concepts and Methods. Israel, 466--491.
 
9
Crary, K. 1999. Simple, efficient object encoding using intersection types. Tech. Rep. CMU-CS-99-100, Carnegie Mellon University, Pittsburgh, Pa.
10
 
11
 
12
13
 
14
Girard, J. Y. 1972. Interpretation fonctionnelle et elimination des coupures dans l'arithmetique d'ordre superieur. Ph.D. dissertation. University of Paris VII, Paris, France.
15
 
16
 
17
18
 
19
 
20
21
22
 
23
Krall, A. and Grafl, R. 1997. CACAO---A 64-bit Java VM Just-In-Time compiler. In Proceedings of the ACM PPoPP'97 Workshop on Java for Science and Engineering Computation. ACM, New York.
24
 
25
League, C., Trifonov, V., and Shao, Z. 2001a. Functional Java bytecode. In Proceedings of the 5th World Conference on Systemics, Cybernetics, and Informatics. Workshop on Intermediate Representation Engineering for the Java Virtual Machine.
 
26
League, C., Trifonov, V., and Shao, Z. 2001b. Type-preserving compilation of Featherweight Java. In Proceedings of the International Workshop on Foundations of Object-Oriented Languages. (London, England).
27
 
28
Morrisett, G., Crary, K., Glew, N., Grossman, D., Samuels, R., Smith, F., Walker, D., Weirich, S., and Zdancewic, S. 1999a. TALx86: A realistic typed assembly language. In Proceedings of the Workshop on Compiler Support for Systems Software. ACM, New York, 25--35.
 
29
Morrisett, G., Tarditi, D., Cheng, P., Stone, C., Harper, R., and Lee, P. 1996. The TIL/ML compiler: Performance and safety through types. In Proceedings of the Workshop on Compiler Support for Systems Software. ACM, New York.
30
31
32
 
33
Peyton Jones, S. L., Hall, C., Hammond, K., Partain, W., and Wadler, P. 1992. The Glasgow Haskell Compiler: A technical overview. In Proceedings of the UK Joint Framework for Information Technology.
 
34
Pierce, B. C. and Turner, D. N. 1994. Simple type-theoretic foundations for object-oriented programming. J. Funct. Prog. 4, 2 (Apr.), 207--247.
 
35
Proebsting, T. A., Townsend, G., Bridges, P., Hartman, J. H., Newsham, T., and Watterson, S. A. 1997. Toba: Java for applications: A way ahead of time (WAT) compiler. In Proceedings of the 3rd Conference on Object-Oriented Technologies and Systems (COOTS'97).
 
36
Rémy, D. 1993. Syntactic theories and the algebra of record terms. Tech. Rep. 1869, INRIA.
37
 
38
 
39
Shao, Z. 1997. An overview of the FLINT/ML compiler. In Proceedings of the 1997 ACM SIGPLAN Workshop on Types in Compilation. ACM, New York.
40
41
42
 
43
Vanderwaart, J. C. 1999. Typed intermediate representations for compiling object-oriented languages. Williams College Senior Honors Thesis.
 
44

CITED BY  7

Collaborative Colleagues:
Christopher League: colleagues
Zhong Shao: colleagues
Valery Trifonov: colleagues