|
ABSTRACT
Java source code is strongly typed, but the translation from Java source to bytecode omits much of the type information originally contained within methods. Type elaboration is a technique for reconstructing strongly typed programs from incompletely typed bytecode by inferring types for local variables.
There are situations where, technically, there are not enough types in the original type hierarchy to type a bytecode program. Subtype completion is a technique for adding necessary types to an arbitrary type hierarchy to make type elaboration possible for all verifiable Java bytecode.
Type elaboration with subtype completion has been implemented as part of the Marmot Java compiler.
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.
 |
ABLN89
|
|
| |
Bac97
|
|
| |
Ben93
|
|
| |
Bir95
|
C. Birkhoff. Lattice Theory, volume 25 of Colloquium Publications. American Mathematical Society, Providence, RI, third edition, 1995.
|
 |
Cas93
|
Yves Caseau, Efficient handling of multiple inheritance hierarchies, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.271-287, September 26-October 01, 1993, Washington, D.C., United States
|
 |
CFR+89
|
R. Cytron , J. Ferrante , B. K. Rosen , M. N. Wegman , F. K. Zadeck, An efficient method of computing static single assignment form, Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.25-35, January 11-13, 1989, Austin, Texas, United States
[doi> 10.1145/75277.75280]
|
 |
CGQ98
|
|
| |
DP90
|
B.A. Davey and H. A. Priestley. Introduction to Lattices and Order. Cambridge Mathematical Textbooks, Cambridge University Press, 1990.
|
| |
FKR+
|
|
 |
FM98
|
|
| |
FM99
|
Stephen N. Freund and John C. Mitchell. A type system for Java bytecode subroutines and exceptions. Technical report, Standford Univeristy, Computer Science Department, April 1999.
|
 |
Fre98
|
|
| |
GH99
|
Etienne Gagnon and Laurie Hendren. Intra, procedural inference of static types for java bytecode. Technical Report 1, McGill University, 1999.
|
| |
GJS96
|
|
| |
Gol97
|
Allen Goldberg. A specification of Java loading and bytecode verification. Technical Report KES.U.92.1, Kestrel Institute, December 1997.
|
 |
HM95
|
|
| |
IBM98
|
IBM. IBM high performance compiler for Java: An optimizing native code compiler for Java applications. http: //www. alphaworks, ibm. corn/ graphics.nsf/system/graphics/HPCJ/ $file/highpcj.html, May 1998.
|
| |
Ins98
|
Instantiations, Inc. Jove: Super optimizing deployment environment for Java. http://www.instantiations.com/j avaspeed / jovereport.htm, July 1998.
|
| |
KR99
|
Todd Knoblock and Jakob Rehof. Type elaboration and subtype completion for java bytecode. Technical Report MSR-TR-99-79, Microsoft Research, Redmond, WA, USA, November 1999.
|
 |
LM92
|
|
| |
LO98
|
|
 |
LST99
|
|
| |
LY99
|
|
| |
Mac37
|
H.M. MacNeille. Partially ordered sets. Transactions of the American Mathematical Society, 42:90-96, 1937.
|
| |
Mor95
|
J. Gregory Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, December 1995. Published as CMU Technical Report CMU-CS-95-226.
|
| |
MWCG97
|
|
| |
Nat98
|
NaturalBridge, LLC. Bullettrain Java compiler technology. http://www.naturalbridge.com/, 1998.
|
| |
Nec98
|
|
 |
O’C99
|
|
| |
ON99
|
|
 |
PO95
|
|
| |
PT96
|
|
| |
Pus99
|
|
| |
Qia98
|
|
| |
Qia99
|
Zhenyu Qian. Least types for memory locations in (Java) bytecode. Technical report, Kestrel Institute, 1999. http://www.kestrel, edu / HTM L/people/ qian/pub-list.html.
|
 |
SA98
|
|
| |
Shi91
|
Olin Shivers. Data-flow analysis and type recovery in scheme. In Peter Lee, editor, Topics in Advanced Language Implementation, chapter 3, pages 47-87. The MIT Press, 1991.
|
| |
Sup98
|
SuperCede, Inc. SuperCede for Java, Version 2.03~ Upgrade Edition. http://www.supercede.com/, September 1998.
|
| |
Sym97
|
Don Syme. Proving JavaS type soundness. Technical Report 427, University of Cambridge Computer Laboratory, 1997.
|
| |
Tar72
|
Robert E. Tarjan. Depth first search and linear graph algorithms. SIAM Journal on Computing, 1(2):146-160, 1972.
|
| |
Tar96
|
David Tarditi. Design and implementation o} Coite Optimizations for a Type-Directed Compiler for Standard ML. PhD thesis, Carnegie Mellon University, December 1996.
|
| |
Tiu92
|
J. Tiuryn. Subtype inequalities. In Prec. 7th Annual IEEE Syrup. on Logic in Computer Science (LICS), Santa Cruz, California, pages 308-315. IEEE Computer Society Press, June 1992.
|
 |
Yel99
|
|
|