|
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
|
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]
|
| |
3
|
|
 |
4
|
Gilad Bracha , Martin Odersky , David Stoutamire , Philip Wadler, Making the future safe for the past: adding genericity to the Java programming language, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.183-200, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
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
|
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]
|
| |
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
|
Karl Crary , Robert Harper , Sidd Puri, What is a recursive module?, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.50-63, May 01-04, 1999, Atlanta, Georgia, United States
|
| |
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
|
Neal Glew, An efficient class and object encoding, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.311-324, October 2000, Minneapolis, Minnesota, United States
|
| |
16
|
|
| |
17
|
|
 |
18
|
|
| |
19
|
|
| |
20
|
|
 |
21
|
Atshushi Igarashi , Benjamin Pierce , Philip Wadler, Featherwieght Java: a minimal core calculus for Java and GJ, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.132-146, November 01-05, 1999, Denver, Colorado, United States
|
 |
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
|
Zhong Shao , Christopher League , Stefan Monnier, Implementing typed intermediate languages, Proceedings of the third ACM SIGPLAN international conference on Functional programming, p.313-323, September 26-29, 1998, Baltimore, Maryland, United States
|
 |
42
|
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
|
| |
43
|
Vanderwaart, J. C. 1999. Typed intermediate representations for compiling object-oriented languages. Williams College Senior Honors Thesis.
|
| |
44
|
|
CITED BY 7
|
|
|
|
|
Bor-Yuh Evan Chang , Adam Chlipala , George C. Necula , Robert R. Schneck, Type-based verification of sssembly language for compiler debugging, Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation, p.91-102, January 10-10, 2005, Long Beach, California, USA
|
|
|
Bor-Yuh Evan Chang , Adam Chlipala , George C. Necula , Robert R. Schneck, The open verifier framework for foundational verifiers, Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation, p.1-12, January 10-10, 2005, Long Beach, California, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|