ACM Home Page
Please provide us with feedback. Feedback
Type elaboration and subtype completion for Java bytecode
Full text PdfPdf (874 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 23 ,  Issue 2  (March 2001) table of contents
Pages: 243 - 272  
Year of Publication: 2001
ISSN:0164-0925
Authors
Todd B. Knoblock  Microsoft Research
Jakob Rehof  Microsoft Research
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 81,   Citation Count: 5
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/383043.383045
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.

1
 
2
 
3
 
4
Birkhoff, G. 1995. Lattice Theory , third ed. Colloquium Publications, vol. 25. American Mathematical Society, Providence, RI.
5
 
6
Coglio, A., Goldberg, A., and Qian, Z. 1998. Towards a provably-correct implementation of the JVM bytecode veriaer. Tech. Rep. KES.U.98.5, Kestrel Institue. August 1998. Also availabe in Proceedings of the OOPSLA '98 Workshop on the Formal Underpinnings of Java, Vancouver, B.C., October 1998.
7
 
8
Davey, B. A. and Priestley, H. A. 1990. Introduction to Lattices and Order. Cambridge Mathematical Textbooks, Cambridge University Press.
 
9
 
10
Freund, S. N. 1998. The costs and benefits of Java bytecode subroutines. In Formal Underpinnings of Java Workshop at OOPSLA. http://ww-dse.doc.ic.ac.edu/ c_sue/ oopsla/cfp.html.
11
 
12
Freund, S. N. and Mitchell, J. C. 1999. A type system for Java bytecode subroutines and exceptions. Tech. rep., Stanford Univeristy, Computer Science Department. April.
 
13
Gagnon, E. and Hendren, L. 1999. Intra-procedural inference of static types for Java bytecode. Tech. Rep. 1, McGill University.
 
14
Goldberg, A. 1997. A specification of Java loading and bytecode verification. Tech. Rep. KES.U.92.1, Kestrel Institute. December.
 
15
16
 
17
IBM. 1998. IBM high performance compiler for Java: An optimizing native code compiler for Java applications. http://www.alphaworks.ibm.com/ graphics.nsf/system/graphics/HPCJ/ $file/highpcj.html.
 
18
Instantiations, Inc. 1998. Jove: Super optimizing deployment environment for Java. http://www.instantiations.com/javaspeed/ jovereport.htm.
 
19
20
 
21
22
 
23
 
24
MacNeille, H. M. 1937. Partially ordered sets. Transactions of the American Mathematical Society 42, 90-96.
 
25
 
26
Morrisett, J. G. 1995. Compiling with types. Ph.D. thesis, Carnegie Mellon University. Published as CMU Technical Report CMU-CS-95-226.
 
27
NaturalBridge, LLC. 1998. Bullettrain Java compiler technology. http://www.naturalbridge.com/.
 
28
29
 
30
31
 
32
 
33
 
34
 
35
Qian, Z. 1999. Least types for memory locations in (Java) bytecode. Tech. rep., Kestrel Institute. http://www.kestrel.edu/HTML/people/ qian/pub-list.html.
 
36
 
37
Shivers, O. 1991. Data- ow analysis and type recovery in scheme. In Topics in Advanced Language Implementation, P. Lee, Ed. The MIT Press, Chapter 3, 47-87.
38
 
39
SuperCede, Inc. 1998. SuperCede for Java, Version 2.03, Upgrade Edition. http://www.supercede.com/.
 
40
Syme, D. 1997. Proving JavaS type soundness. Tech. Rep. 427, University of Cambridge Computer Laboratory.
 
41
Tarditi, D. 1996. Design and implementation of code optimizations for a type-directed compiler for standard ml. Ph.D. thesis, Carnegie Mellon University.
 
42
Tarjan, R. E. 1972. Depth first search and linear graph algorithms. SIAM Journal on Computing 1, 2, 146-160.
 
43
Tiuryn, J. 1992. Subtype inequalities. In Proc. 7th Annual IEEE Symp. on Logic in Computer Science (LICS), Santa Cruz, California. IEEE Computer Society Press, 308-315.
 
44
Wand, M. 1987. A simple algorithm and proof for type inference. Fundamenta Informaticae X, 115-12.
45


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