|
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
|
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
|
| |
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
|
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]
|
| |
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
|
Stephen N. Freund , John C. Mitchell, A type system for object initialization in the Java bytecode language, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.310-327, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
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
|
|
|