Java and the Java Virtual Machine: Definition, Verification, Validation