Skip to main content

Extending Operational Semantics of the Java Bytecode

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4912))

Abstract

A proof-carrying code infrastructure can ensure safety of global computers. Such an infrastructure requires sound and complete semantics of the global computing platform. Bicolano is an operational semantics of the major part of the Java bytecode language. We present here two extension frameworks for the semantics and discuss their different features. Both frameworks are made in a modular fashion. The first one, so called horizontal, allows to extend states with additional information that traces a running program behaviour (e.g. memory consumption). The second one, so called vertical, additionally allows an extension to supplement the behaviour specified in the original semantics. A comparison of these frameworks is presented. In particular, we prove that the horizontal framework can be simulated by the vertical one and show an example of an extension which cannot be realised in the horizontal one, but can be realised in the vertical one. However, extensions in the horizontal framework are less memory consuming and conceptually simpler. In this light, the choice of the framework to use should depend on a particular application.

This work was partly supported by Polish government grant 177/6.PR UE/2006/7 and Information Society Technologies programme of the European Commission FET project IST-2005-015905 MOBIUS. This paper reflects only authors’ views and the Community is not liable for any use that may be made of the information contained therein.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Appel, A.W., Felty, A.P.: A semantic model of types and machine instructions for proof-carrying code. In: Principles of Programming Languages. Association of Computing Machinery Press (2000)

    Google Scholar 

  2. Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. In: Texts in Theoretical Computer Science, Springer, Heidelberg (2004)

    Google Scholar 

  3. Beringer, L., Hofmann, M.: A bytecode logic for JML and types. In: Kobayashi, N. (ed.) APLAS 2006. LNCS, vol. 4279, pp. 389–405. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Chrząszcz, J.: Modules in Type Theory with Generative Definitions. PhD thesis, Warsaw University and University of Paris-Sud (January 2004)

    Google Scholar 

  5. Mobius Consortium. Deliverable 3.1: Bytecode specification language and program logic (2006), http://mobius.inria.fr

  6. Coq development team. The Coq proof assistant reference manual V8.0. Technical Report 255, INRIA, France, mars (2004), http://coq.inria.fr/doc/main.html

  7. Klein, G., Nipkow, T.: A machine-checked model for a Java-like language, virtual machine and compiler. ACM Transactions on Programming Languages and Systems 28(4), 619–695 (2006)

    Article  Google Scholar 

  8. Liang, S., Hudak, P.: Modular Denotational Semantics for Compiler Construction. In: Riis Nielson, H. (ed.) ESOP 1996. LNCS, vol. 1058, pp. 219–234. Springer, Heidelberg (1996)

    Google Scholar 

  9. Lindholm, T., Yellin, F.: The JavaTM Virtual Machine Specification, 2nd edn. Sun Microsystems, Inc. (1999), http://java.sun.com/docs/books/vmspec/

  10. Mosses, P.D.: Action Semantics. Cambridge Tracts in Theoretical Computer Science, vol. 26. Cambridge University Press, Cambridge (1992)

    MATH  Google Scholar 

  11. Necula, G.C.: Proof-carrying code. In: Principles of Programming Languages, pp. 106–119. Association of Computing Machinery Press, New York, NY, USA (1997)

    Google Scholar 

  12. Nielson, F., Nielson, H.R.: Type and effect systems. In: Olderog, E.-R., Steffen, B. (eds.) Correct System Design. LNCS, vol. 1710, pp. 114–136. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  13. Pichardie, D.: Bicolano – Byte Code Language in Coq (2006), http://mobius.inia.fr/bicolano

  14. Skalka, C., Smith, S.F.: History effects and verification. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302, pp. 107–128. Springer, Heidelberg (2004)

    Google Scholar 

  15. Sun Microsystems Inc., 4150 Network Circle, Santa Clara, California 95054. Connected Limited Device Configuration. Specification Version 1.1. JavaTM 2 Platform, Micro Edition (J2METM) (March 2003), http://jcp.org/aboutJava/communityprocess/final/jsr139/index.html

  16. Tofte, M.: Type Inference for Polymorphic References. Information and Computation 89(1), 1–34 (1990)

    Article  MATH  MathSciNet  Google Scholar 

  17. Tofte, M., Talpin, J.-P.: Region-Based Memory Management. IC 132(2), 109–176 (1997)

    MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gilles Barthe Cédric Fournet

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Czarnik, P., Schubert, A. (2008). Extending Operational Semantics of the Java Bytecode. In: Barthe, G., Fournet, C. (eds) Trustworthy Global Computing. TGC 2007. Lecture Notes in Computer Science, vol 4912. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78663-4_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-78663-4_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-78662-7

  • Online ISBN: 978-3-540-78663-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics