ACM Home Page
Please provide us with feedback. Feedback
A formal specification of Java class loading
Full text PdfPdf (241 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Minneapolis, Minnesota, United States
Pages: 325 - 336  
Year of Publication: 2000
ISBN:1-58113-200-X
Also published in ...
Authors
Zhenyu Qian  Kestrel Institute, 3260 Hillview Avenue, Palo Alto, CA
Allen Goldberg  Shoulders Corp., 800 West El Camino Real, Mountain View, CA and Kestrel Institute, 3260 Hillview Avenue, Palo Alto, CA
Alessandro Coglio  Kestrel Institute, 3260 Hillview Avenue, Palo Alto, CA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 51,   Citation Count: 9
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/353171.353193
What is a DOI?

ABSTRACT

The Java Virtual Machine (JVM) has a novel and powerful mechanism to support lazy, dynamic class loading according to user-definable policies. Class loading directly impacts type safety, on which the security of Java applications is based. Conceptual bugs in the loading mechanism were found in earlier versions of the JVM that lead to type violations. A deeper understanding of the class loading mechanism, through such means as formal analysis, will improve our confidence that no additional bugs are present.The work presented in this paper provides a formal specification of (the relevant aspects of) class loading in the JVM and proves its type safety. Our approach to proving type safety is different from the usual ones since classes are dynamically loaded and full type information may not be statically available. In addition, we propose an improvement in the interaction between class loading and bytecode verification, which is cleaner and enables lazier loading.


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
E. Borger and W. Schulte. Modular design for the Java virtual machine architecture. ftp://ftp.di.unipi.it/pub/Papers/boerger/ jvmarch.ps, 1999.
 
2
G. Bracha. A critique of 'Security and dynamic loading in Java: A formalisation'. http://java.sun.com/people/gbracha /critique-jmt.html, 1999.
3
 
4
A. Coglio and A. Goldberg. Type safety in the JVM: Some problems in JDK 1.2.2 and proposed solutions. In Proc. ECOOP Workshop on Formal Techniques for Java Programs, 2000. Long version available at http://www.kestrel.edu/java.
 
5
A. Coglio, A. Goldberg, and Z. Qian. Towards a provably-correct implementation of the JVM bytecode verifier. In Proc. OOPSLA'98 Workshop Formal Underpinnings of Java, 1998.
6
 
7
S. Drossopoulou. Towards an abstract model of Java dynamic linking and verification. Department of Computing, Imperial College, London, UK.
8
 
9
Formal Methods Program - SRI Computer Science Laboratory. The PVS specification and verification system. http://pvs.csl.sri.com/, 1999.
10
11
 
12
 
13
 
14
15
 
16
17
 
18
 
19
Z. Qian, A. Goldberg, and A. Coglio. A formal specification of JavaTM class loading. Long version. http://www.kestrel.edu/java, 2000.
 
20
V. Saraswat. Java is not type-safe. Technical report, AT&T Research, 1997. http://www.research.att.com/~vj/bug.html.
 
21
A. Tozawa and M. Hagiya. Careful analysis of type spoofing. In JIT'99 Java-Informations-Tage 1999, Clemens H. Cap, Hrsg., Informatik aktuell, pages 290-296. Springer Verlag, 1999.
 
22
A. Tozawa and M. Hagiya. New formalization of the JVM. http://nicosia.is.s.u-tokyo.ac.jp/members /miles/papers/cl-99.ps, 1999.

CITED BY  9

Collaborative Colleagues:
Zhenyu Qian: colleagues
Allen Goldberg: colleagues
Alessandro Coglio: colleagues