He
re's the slides again, from Prof. Mitchell's cs242 lecture on Java
VMs..
The 13th slide contains this rather clear summary of how fields are
accessed by Java bytecode instructions:
Field and method
access
Instruction includes index into constant pool
-
Constant pool stores symbolic names
- Store once, instead of each
instruction, to save space
First execution
- Use symbolic name
to find field or method
Second execution
- Use modified "quick"
instruction to simplify search
(emphasis is mine)
So Prof.
Mitchell's own teaching materials show that in a Java class, "symbolic names"
are NOT contained in the bytecode instructions. Java's bytecode instructions
only contain a numeric "index into [the] constant pool".
As several of
Google's witnesses testified, Dalvik bytecode instructions also contain a
similar numeric "index". And Prof. Mitchell agrees.
Now, Prof.
Mitchell claimed in court today, that this numeric index was a "symbolic
reference". Wouldn't that mean the numeric index in the Java bytecode
instruction is also a "symbolic reference"?
But his own cs242 teaching
material doesn't say that. It says symbolic names are stored in the constant
pool, and used by the instruction when it is executed. This is a big
difference. And a critical difference, as far as the '104 patent is
concerned.
To his cs242 students, Prof. Mitchell presents the truth about
how symbolic references work in a compiled Java .class file. But in court, he
presents a very different story about how symbolic references work in a Dalvik
.dex file.
Can anyone understand this teeny little discrepancy? [ Reply to This | Parent | # ]
|