skip to main content
10.1145/320384.320397acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free access

A formal framework for the Java bytecode language and verifier

Published: 01 October 1999 Publication History

Abstract

This paper presents a sound type system for a large subset of the Java bytecode language including classes, interfaces, constructors, methods, exceptions, and bytecode subroutines. This work serves as the foundation for developing a formal specification of the bytecode language and the Java Virtual Machine's bytecode verifier. We also describe a prototype implementation of a type checker for our system and discuss some of the other applications of this work. For example, we show how to extend our work to examine other program properties, such as the correct use of object locks.

References

[1]
Peter Bertelsen. Dynamic semantics of Java bytecode. In Workshop on Principles of Abstract Machines, September 1998.]]
[2]
E. Boerger and W. Schulte. Programmer friendly modular definition of the semantics of Java. In J. A1ves-Foss, editor, Formal Syntax and Semantics of Java. Springer VerIag LNCS 1523, 1998.]]
[3]
Alessandro Coglio, Allen Goldberg, and Zhenyu Qian. Toward a provably-correct implementation of the JVM bytecode verifier. In Workshop on the Formal Underpinnings of the Java Paradigm, October 1998.]]
[4]
Rich Cohen. Defensive Java Virtual Machine Version 0.5 Mpha Release. Available from http://www.cli.com/software/djvm/index.html, November 1997.]]
[5]
W.R. Cook. A proposal for making Eiffel typesafe. In European Conf. on Object-Oriented Programming, pages 57-72, 1989.]]
[6]
Grzegorz Czajkowski and Thorsten von Eieken. Jres: A resource accounting interface for Java. In Proceedings of A CM Conference on Object Oriented Languages and Systems, October 1998.]]
[7]
S. Drossopoulou and S. Eisenbach. Java is type safe probably. In European Conference On Object Oriented Programming, pages 389-418, 1997.]]
[8]
Drew Dean, Edward W. Felten, Dan S. Wallach, and Dirk Balfanz. Java security: Web browers and beyond. in Dorothy E. Denning and Peter J. Denning, editors, Internet Beseiged: Countering Cyberspace Scofflaws. ACM Press, New York, New York, Octo~ ber 1997.]]
[9]
Cormac Flanagan and Martin Abadi, Types for s~fe locking. In Proceedings of European Symposium on Programming, March 1999.]]
[10]
Stephen Freund and John Mitchell. A type system for object initialization in the Java bytecode language. In Proc. A CM Conference on Object- Oriented Programming: Languages, Systems, and Applications, October 1998. An extended version appears as Stanford University Technical Note STAN- CS-98-62, April 1998.]]
[11]
Stephen Freund and John Mitchell. Specification and verification of Java bytecode subroutines and exceptions, August 1999. To appear as a Stanford University Technical Note. Currently available from http ://cs. stanford, edu/'freunds.]]
[12]
Sanjay Ghemawat.srcjava.Available from http://www.research.digital.com/SRC/java, August 1999.]]
[13]
Allen Goldberg. A specification of Java loading and bytecode verification. In A CM Conference on Computer and Communication Security, 1998.]]
[14]
Java-Powered Ring.Available from http://www.ibutton.com, March 1999.]]
[15]
Mark Jones. The functions of Java bytecode. In Workshop on the Formal Underpinnings of the Java Paradigm, October 1998.]]
[16]
Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.]]
[17]
Greg Morrisett, Karl Crary, Neal Glew, and David Walker. From system F to typed assembly language. In Proc. 25th A CM Symposium on Principles of Programming Languages, January 1998.]]
[18]
George C. Necula. Proof-carrying code. In Proc. 2~th A CM Symposium on Principles of Programming Languages, 1997.]]
[19]
Tobias Nipkow and David yon Oheimb. Javatig~,t is Type-Safe- Definitely. In Proc. 25th A CM Symposium on Principles of Programming Languages, Januaxy 1998.]]
[20]
Robert O'CMlahan. A simple, comprehensive type system for Java bytecode subroutines. In Proc. 26th A CM Symposium on Principles of Programming Languages, January 1999.]]
[21]
Cornelia Pusch. Proving the soundness of a Java bytecode verifier specification in Isabelte/HOL. In TA CAN, 1999.]]
[22]
Joachim Posegga and Harald Vogt. Byte code verification for Java smart cards based on modei checking. in 5th European Symposium on Research in Computer Security (ESORICS), Louvain-la-Neuve, Belgium, 1998. Springer LNCS.]]
[23]
Zhenyu Qian. A Formal Specification of Java(tin) Virtual Machine Instructions. In 3. Alves-Foss, editor, Formal Syntax and Semantics of Java. Springer Verlag LNCS 1523, 1998.]]
[24]
Zhenyu Qian. Least types for memory locations in (Java) bytecode. In Sixth Workshop on Foundations of Object-Oriented Languages, January 1999.]]
[25]
Eva Rose. Towards secure bytecode verification on a Java card. Master's thesis, University of Copenhagen, 1998.]]
[26]
Eva Rose and Kristoffer Hogsbro Rose. Toward a provably-correct implementation of the JVM bytecode verifier. In Workshop on the Formal Underpinnings of the Java Paradigm, October 1998.]]
[27]
Raymie Stata and Martin Abadi. A type system for Java bytecode subroutines. Transaction on Programming Languages and Systems, 1999. To appear. Currently available as Digital Equipment Corporation Systems Reseerch Center Research Report 158, June 1998. An earlier version appeared in Proc. 25th ACM Symposium on Principles of Programming Languages, January 1998.]]
[28]
Emin Grin Sirer, Scan McDirmid, and Brian Bershad. Kimera: A Java system architecture. Available from http://kimera.cs.washington.edu, November 1997.]]
[29]
Don Syme. Proving Java type soundness. Technieat Report 427, University of Cambridge Computer Laboratory Technical Report, 1997.]]
[30]
D. Tarditi, G. Morrisett, P. Cheng, C. Stone, g. Harper, and P. Lee. TIL: A type-directed optimizing compiler for ML. ACM SIGPLAN Notices, 31(5):181-192, May 1996.]]
[31]
Dam S. Wallach and Edward W. Felten. Understanding Java stack inspection. In Proceedings of IEEE Symposium on Security and Privacy, May 1998.]]
[32]
Hongwei Xi and Frank Pfenning. Dependent types in praztical programming, In Proc. 26th A CM Symposium on Principles of Programming Languages, January 1999.]]
[33]
Phillip Yelland. A compositional account of the Java Virtual Machine. In Proc. 26th A CM Symposium on Principles of Programming Languages, January 1999.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 1999
462 pages
ISBN:1581132387
DOI:10.1145/320384
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1999

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA99
Sponsor:

Acceptance Rates

OOPSLA '99 Paper Acceptance Rate 30 of 152 submissions, 20%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)98
  • Downloads (Last 6 weeks)22
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media