Hello,

I am working on automated termination analysis of Java Bytecode and I am
missing an important bit of information in the Java Virtual Machine
Specification (JVMS). I'd be happy to get some help from you!

Every JVM needs to provide certain classes including code for their native
methods, e.g. java.lang.Object (obvious) and java.io.Serializable (because
every array implements it). The list of such classes can easily be
extended, but I have huge problems finding a lower bound to keep this list
as small[1] as allowed according to the JVMS.

Is there some part of the specification that states which classes need to
be provided? I can only see references to the API (e.g. "reflective APIs"),
but no clear definition of the classes that need to exist. In the current
draft for JVMS 3rd edition, the necessity to include java.io.Serializable
is not even part of the JVMS, this is only visible by looking at the
definition of arrays in the Java Language Specification (JLS).

Some hints in this direction are also appreciated. So far I can only guess,
that sun.awt.* is not part of the language defined in the JVMS - but who
knows?

[1]: Sadly, just using whatever Sun or OpenJDK provide in rt.jar does not
work.

Thanks a lot,
-- 
Carsten Otto           o...@informatik.rwth-aachen.de
LuFG Informatik 2      http://verify.rwth-aachen.de/otto/
RWTH Aachen            phone: +49 241 80-21211

Attachment: signature.asc
Description: Digital signature

Reply via email to