Java and the Java Virtual Machine
(R. Stärk,
J. Schmid,
E. Börger)
Remarks and history for the executables models
Version 1.03 is provided by the CD-ROM. The current version can
be downloaded from the main page.
Remarks for version 1.04
- Compile-time constants
- Compile-time constant expressions are not substituted with their
corresponding value as it is required in the JLS 2.0.
This might lead to unnecessary class
initialization as observed by Kurt Stenzel. In our implementation,
only literals are treated as compile-time constants.
- Strings
- Same strings share the same reference in our models. This is
not according to the
JLS 2.0 where same string literals share only the
same reference (as observed by Kurt Stenzel). However, this
is only a problem, if you compare strings with the ==
operator.
History
- May 28, 2001 (version 1.04)
- Fixed the following issues:
- Kurt Stenzel has observed that our
Java machine throws IndexOutOfBoundsException instead
of ArrayIndexOutOfBoundsException if an array index violation
occurs. This changed from
JLS 1.0 to
JLS 2.0.
- Integrated support for primitive type casts
(int to byte, e.g.).
- The method Thread/run was called instead of
Runnable/run when executing a thread created with
the constructor Thread(Runnable).
- Due to a parser error, the variable declarations in an interface
might have been in reverse order. This was only a
problem if a variable initializer was depending on a
previous variable initializer.
- Name mismatch between example name in the Jbook and directory name
in the executables models. This concerns the directories
Exercise8_2_1,
Exercise8_2_4,
Exercise8_4_1,
Exercise8_4_2,
Exercise8_4_3, and
Exercise8_4_4 in examples/java and
examples/jvm where 8_2_x and 8_4_x
must be replaced by 8_3_x and 8_2_x,
respectively.
- To make Exercise 8.2.4 more reasonable, we replaced
the while condition i!=0 by
i>=0.
After applying the patch, delete the file
examples/java/Exercise8_2_4/no_out and the directory
examples/java/Exercise8_4_3.
- May 7, 2001 (version 1.03)
- Support for "for"-statement, post-decrement and
post-increment operators for local variables. This
version is on the CD-ROM.
- May 3, 2001 (version 1.02)
- Improved performance of Java-GUI. Added some
larger examples.
- May 2, 2001 (version 1.01)
- Java-ASM and Compiler-ASM support now a.length
and a.clone() if a is an array.
Fixed some bugs about array compatibility.
Home