skip to main content
10.1145/568760.568826acmotherconferencesArticle/Chapter ViewAbstractPublication PagessekeConference Proceedingsconference-collections
Article

Fixing the Java bytecode verifier by a suitable type domain

Published:15 July 2002Publication History

ABSTRACT

The Java Virtual Machine embodies a verifier which performs a set of checks on bytecode programs before their execution. The verifier performs a data-flow analysis applied to a type-level abstract interpretation of the code. The current implementations of the bytecode verifier present a significant problem: there are legal Java programs which are correctly compiled into a bytecode that is rejected by the verifier. Also the more powerful verification techniques proposed in several papers suffer from the same problem. In this paper we propose to enhance the bytecode verifier to accept such programs, maintaining the efficiency of current implementations. The enhanced version is based on a domain of types which is more expressive than the one used in standard verification.

References

  1. Barbuti, R., Bernardeschi, C., De Francesco, N. and Tesei, L. Enhancing the Java Bytecode Verifier by Abstract Interpretation. Internal Report Dipartimento di Informatica, Università di Pisa, 2002.]]Google ScholarGoogle Scholar
  2. Cousot, P. and Cousot, R. Abstract Interpretation: a unified lattice model for static analysis of programs by construction of approximation of fixpoints. In Proc. of POPL'77. ACM Press, 238-258, 1977]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cousot, P. and Cousot, R. Constructive versions of Tarski's fixed point theorems. Pacific Journal of Mathematics,82(1):43-57, 1979.]]Google ScholarGoogle ScholarCross RefCross Ref
  4. Freund, S. N. and Mitchell, J. C. A Formal Framework for the Java Bytecode Language and Verifier. ACM Conference on Object-Oriented Programming Systems, Languages & Applications, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Hagiya, M. and Tozawa, A. On a New Method for Dataflow Analysis of Java Virtual Machine Subroutines. Static Analysis Symposium '98, LNCS 1503, Springer, 1998.]]Google ScholarGoogle ScholarCross RefCross Ref
  6. Leroy, X. Java bytecode verification: an overview. In Proceedings of CAV'01, Springer LNCS 2102, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Lindholm, T. and Yellin, F. The Java Virtual Machine Specification. The Java Series, Addison-Wesley, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Nipkow, T. Verified Bytecode Verifiers. FOSSACS 2001, LNCS 2030, Springer, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. O'Callahan, R. A Simple, Comprehensive Type System for Java Bytecode Subroutines. ACM Symposium on Principles of Programming Languages, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Qian, Z. Standard fixpoint iteration for Java bytecode verification. ACM Transactions on Programming Languages and Systems22(4):638-672, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Stärk, R. F. and Schmid, J. The problem of bytecode verification in current implementations of the JVM. Technical Report, Department of Computer Science, ETH Zürich, 2000.]]Google ScholarGoogle Scholar
  12. Stata, R. and Abadi, M. A type system for Java bytecode subroutines. ACM Transactions on Programming Languages and Systems,21(1):90-137, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    SEKE '02: Proceedings of the 14th international conference on Software engineering and knowledge engineering
    July 2002
    859 pages
    ISBN:1581135564
    DOI:10.1145/568760

    Copyright © 2002 ACM

    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 15 July 2002

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader