ACM Home Page
Please provide us with feedback. Feedback
A type system for Java bytecode subroutines
Full text PdfPdf (520 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 21 ,  Issue 1  (January 1999) table of contents
Pages: 90 - 137  
Year of Publication: 1999
ISSN:0164-0925
Authors
Raymie Stata  Digital Equipment Corp., Palo Alto, CA
Martin Abadi  Digital Equipment Corp., Palo Alto, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 55,   Citation Count: 24
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/314602.314606
What is a DOI?

ABSTRACT

Java is typically compiled into an intermediate language, JVML, that is interpreted by the Java Virtual Machine. Because mobile JVML code is not always trusted, a bytecode verifier enforces static constraints that prevent various dynamic errors. Given the importance of the bytecode verifier for security, its current descriptions are inadequate. This article proposes using typing rules to describe the bytecode verifier because they are more precise than prose, clearer than code, and easier to reason about than either. JVML has a subroutine construct which is used for the compilation of Java's try-finally statement. Subroutines are a major source of complexity for the bytecode verifier because they are not obviously last-in/first-out and because they require a kind of polymorphism. Focusing on subroutines, we isolate an interesting, small subset of JVML. We give typing rules for this subset and prove their correctness. Our type system constitutes a sound basis for bytecode verification and a rational reconstruction of a delicate part of Sun's bytecode verifier.


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
COHEN, R. M. 1997. Defensive Java Virtual Machine version 0.5 alpha release. Web pages at http ://www. cli. com/.
 
2
DROSSOPOULOU, S. AND EISENBACH, S. 1997. Java is type safe--probably. In Proceedings of ECOOP '97. Springer-Verlag, 389-418.
3
4
 
5
 
6
 
7
MORRISETT, G. 1995. Compiling with types. Ph.D. thesis, Carnegie Mellon University.
 
8
MORRISETT, G., TARDITI, D., CHENG, P., STONE, C., HARPER, R., AND LEE, P. 1996. The TIL/ML compiler: Performance and safety through types. In Workshop on Compiler Support for Systems Software.
9
 
10
 
11
SARASWAT, V. 1997. The Java bytecode verification problem. Web page at http://www.research art. com/~vj/bcv, html.
 
12
SIRER, E. G., MCDIRMID, S., AND BERSHAD, B. 1997. Kimera: A Java system security architecture. Web pages at http ://kimera. cs. washington, edu/.
 
13
SYME, D. 1997. Proving Java type soundness. Tech. Rep. 427, University of Cambridge Computer Laboratory. June.
 
14
TIC 1997. ACM SIGPLAN Workshop on Types in Compilation (TIC97).
 
15
YELLIN, F. 1997. Private communication.

CITED BY  24

Collaborative Colleagues:
Raymie Stata: colleagues
Martin Abadi: colleagues