As a part of JIT compilation the verification process is
defined as the process to verify if the code is Type safe. This means that it
only accesses the memory locations it is authorized to access. Code that is
proven during verification to be type-safe is called verifiably type-safe code.
Code can be type-safe, yet not be verifiably type-safe due to the limitations
of the verification process or of the compiler. For some languages like Visual
C++ the type safe managed code is not available. We can call this as type safe
code and not verifiably type safe code.
These are the some of the verifications that are checked for
during the verification process:
A reference to a type is strictly compatible with the type being
Only appropriately defined operations are invoked on an object.
Identities are what they claim to be.