ACM Home Page
Please provide us with feedback. Feedback
Type elaboration and subtype completion for Java bytecode
Full text PdfPdf (1.48 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Boston, MA, USA
Pages: 228 - 242  
Year of Publication: 2000
ISBN:1-58113-125-9
Authors
Todd B. Knoblock  Microsoft Research, Redmond, WA
Jakob Rehof  Microsoft Research, Redmond, WA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 20,   Citation Count: 2
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/325694.325725
What is a DOI?

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
CFR+89
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


Collaborative Colleagues:
Todd B. Knoblock: colleagues
Jakob Rehof: colleagues