- ... bytecode.
^{1}
- We have not modeled
`INVOKESTATIC` in this machine, so we
have chosen to make `fact` an instance method.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

- ... function.
^{2}
- Our machine has
unbounded integer arithmetic. We could, of course, model Java's bounded
arithmetic. The factorial theorem would have to be restated
to reflect that.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

- ...
`MONITOREXIT`.^{3}
- Our byte code for
`"run"` exploits the fact that `"incr"` returns ```this`'' and
is slightly different than the compiled Java.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.