Why is type checking important!
If one has either deliberately or accidentally a “wild object pointer” that should be to a user defined on/off object but has somehow been applied to a sensitive object.
Then turning userobject.onoff to true is uncontroversial but this applied to appletprivilege could turn on the ability to write files!
- Note setting userobject.onoff = true is really “go to location of this object and set its start address plus some many bytes to value true”!
Thus normal computer programs often overwrite themselves when you screw-up with a software error.
Java applets can obviously have software bugs but such errors do not let them ever overwrite themselves or anybody else.
- Otherwise the overwriting can radically change security
Thus Java must guarantee types of objects precisely so operations can be stupid but never violate security.