Java interface types support multiple inheritance. Because of this, the standard bytecode verifier ignores them, since it is not able to model the class hierarchy as a lattice. Thus, type checks on interfaces are performed at run time. We propose a verification methodology that removes the need for run-time checks. The methodology consists of: (1) an augmented verifier that is very similar to the standard one, but is also able to check for interface types in most cases; (2) for all other cases, a set of additional simpler verifiers, each one specialized for a single interface type. We obtain these verifiers in a systematic way by using abstract interpretation techniques. Finally, we describe an implementation of the methodology and evaluate it on a large set of benchmarks. (C) 2010 Elsevier B.V. All rights reserved.
|Autori:||De Francesco N; Lettieri G; Martini L|
|Titolo:||Using abstract interpretation to add type checking for interfaces in Java bytecode verification|
|Anno del prodotto:||2010|
|Digital Object Identifier (DOI):||10.1016/j.tcs.2010.01.026|
|Appare nelle tipologie:||1.1 Articolo in rivista|