JavaTM and the JavaTM Virtual Machine

Definition, Verification, Validation

Jbook cover The book provides a high-level description, together with a mathematical and an experimental analysis, of Java and of the Java Virtual Machine (JVM), including a standard compiler of Java programs to JVM code and the security critical bytecode verifier component of the JVM. The description is structured into language layers and machine components. It comes with a natural executable refinement (written in AsmGofer and provided on CD-ROM) which can be used for testing code. The method developed for this purpose, using Abstract State Machines (ASMs), can be applied to other virtual machines and to other programming languages as well.

The target readers are practitioners—programmers, implementors, standardizers, lecturers, students—who need for their work a complete, and at the same time transparent definition, and an executable model, of the language, and of the virtual machine underlying its intended implementation.

The book is available in pdf format as Jbook.pdf. PDF documents can be read and printed with the Adobe Acrobat Reader. The Acrobat Reader 4.05 for Microsoft Windows, Linux, and Solaris Sparc can be found in the directory Archive.

The authors of Jbook
R. Stärk (Theoretische Informatik, ETH Zürich)
J. Schmid (Siemens Corporate Technology, Munich)
E. Börger (Dipartimento di Informatica Università di Pisa)


Overview

Copyright
Executable Models
Content of the CD
Links

Copyright

This work consists of a printed book and a CD-ROM packaged with the book, and is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer-Verlag. Violations are liable for prosecution under the German Copyright Law. Springer-Verlag or the authors make no warranty for representation, either express or implied with respect to this CD-ROM or book, including their quality, merchantibility, or fitness for a particular purpose. In no event will springer or the authors be liable for direct, indirect, special, incidental, or consequential damages arising out of the use or inability to use the CD-ROM or book, even if Springer-Verlag or the authors have been advised of the possibility of such damages.

Executable Models

Mircosoft Windows
The file Jbook.exe installs the executable models and the examples on the local machine. The setup program creates a folder with links to the corresponding machines.

The executable models can also be started directly from the CD without installing the software. For this purpose, the directory machinesWin contain executable files for the machines introduced in the book. The filenames of the corresponding files are listed in the following table:
Machine Filename of executable file With history feature
Java Machine java.exe javaH.exe
Compiler Machine compiler.exe  
Trustful Machine trustful.exe trustfulH.exe
Defensive Machine defensive.exe defensiveH.exe
Diligent Machine diligent.exe diligentH.exe
Use either the Explorer and double click the file or take the command prompt and change to the directory machinesWin and enter the name of the file (with or without the extension .exe).

Unix based operating systems
The CD contains precompiled binaries in the directory machines for Linux, Solaris Sparc, and cygwin. You have to build your own binary if your platform is not among them. The sources of AsmGofer can be found in the Archive directory. The file misc/INSTALL describes how to use the compiled binary with our machines.
In case you have Linux, Solaris Sparc, or cygwin, change to the directory machines and type the corresponding command listed in the following table:
Machine Command With history feature
Java Machine ./java ./javaH
Compiler Machine ./compiler  
Trustful Machine ./trustful ./trustfulH
Defensive Machine ./defensive ./defensiveH
Diligent Machine ./diligent ./diligentH

Content of the CD

Links

Bug Parade (Java Developer Connection)
Cohen's Defensive Java Virtual Machine
Jasmin (converts bytecode in Jasmin syntax into class files)
Java 2 Platform, Standard Edition
BCEL (converts class files into bytecode in Jasmin syntax)
Kimera: A System Architecture for Networked Computers
The Java Language Specification 1.0
The Java Language Specification 2.0
The Java Virtual Machine Specification

Trademarks

Solaris, Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. For short we use Java and JVM.

Microsoft Windows is registered trademark of Microsoft Corporation in the United States and/or other countries.

JBook Home


Joachim Schmid, Siemens Corporate Technology, Munich, April 2001