Magic-sets transformation for the analysis of Java bytecode
Abstract
Denotational static analysis of Java bytecode has a nice and clean compositional definition and an efficient implementation with binary decision diagrams. But it models only the functional i.e., input/out-put behaviour of a program P , not enough if one needs P 's internal behaviours i.e., from the input to some internal program points. We overcome this limitation with a technique used up to now for logic programs only. It adds new magic blocks of code to P , whose functional behaviours are the internal behaviours of P. We prove this transformation correct with an operational semantics. We define an equivalent denota-tional semantics, whose denotations for the magic blocks are hence the internal behaviours of P. We implement our transformation and instantiate it with abstract domains modelling sharing of two variables and non-cyclicity of variables. We get a static analyser for full Java bytecode that is faster and scales better than another operational pair-sharing analyser and a constraint-based pointer analyser.
Domains
Computer Science [cs]
Fichier principal
Magic_sets_transformation_for_analysis_java_bytecode.pdf (300.38 Ko)
Télécharger le fichier
Origin | Explicit agreement for this submission |
---|
Loading...