Abstract
In this chapter we lift the trustfully executing machine of Part II to a defensive machine which checks each instruction before its execution to satisfy certain constraints about types, resource bounds, etc., guaranteeing correct execution in such a way that if the defensive VM executes bytecode successfully, then also the trustful VM does so with the same semantical effect. Our goal here is to prepare the description of the bytecode verifier, to be given in the next chapters, by a transparent definition of the verification functionality, namely in terms of run-time checks of the safe executability of single instructions. We formulate these checking conditions in terms of the types of values instead of values themselves so that they can be adapted in the next two chapters to link-time verifiable properties.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Stärk, R.F., Schmid, J., Börger, E. (2001). The defensive virtual machine. In: Java and the Java Virtual Machine. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-59495-3_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-59495-3_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-63997-5
Online ISBN: 978-3-642-59495-3
eBook Packages: Springer Book Archive