The Java virtual machine executes stack-based bytecode. The intensive use of an operand stack has been identified as a major obstacle for static analysis and it is now common for static analysis tools to manipulate a stackless intermediate representation (IR) of bytecode programs. Several algorithms have been proposed to achieve such a transformation, whereas only little attention has been paid to their formal semantic properties. This work specifies such a bytecode transformation and provides the semantic foundations for proving that an initial program and its IR behave similarly, in particular with respect to object creation and throwing of exceptions. The transformation is based on a symbolic execution of the bytecode, using a symbolic o...
. The term "Java" is used to denote two different concepts: the language itself and the re...
Optimizing Java byte code is complicated by the fact that it uses a stack-based execution model. Ch...
The Java Virtual Machine embodies a verifier that performs a set of checks on Java bytecode programs...
International audienceThe Java virtual machine executes stack-based bytecode. The intensive use of a...
The Java virtual machine executes stack-based bytecode. The intensive use of an operand stack has be...
In this paper we present Jimple, a 3-address intermediate representation that has been designed to s...
An end-to-end guarantee of software correctness by formal verification must consider two sources of ...
AbstractOne of the biggest obstacles in the formalisation of the Java bytecode is that the language ...
AbstractIn Java bytecode, intra-method subroutines are employed to represent code in “finally” block...
New toolkits that parse, analyze, and transform Java Bytecode are frequently developed from scratch ...
The Java Virtual Machine embodies a verifier that performs a set of checks on Java bytecode programs...
In Java bytecode, intra-method subroutines are employed to represent code in “finally” blocks. The u...
In the standard Java implementation, a Java language program is compiled to Java bytecode and this b...
In this paper we propose an strategy for the design of compilers correct by construction for object-...
. The term "Java" is used to denote two different concepts: the language itself and the re...
Optimizing Java byte code is complicated by the fact that it uses a stack-based execution model. Ch...
The Java Virtual Machine embodies a verifier that performs a set of checks on Java bytecode programs...
International audienceThe Java virtual machine executes stack-based bytecode. The intensive use of a...
The Java virtual machine executes stack-based bytecode. The intensive use of an operand stack has be...
In this paper we present Jimple, a 3-address intermediate representation that has been designed to s...
An end-to-end guarantee of software correctness by formal verification must consider two sources of ...
AbstractOne of the biggest obstacles in the formalisation of the Java bytecode is that the language ...
AbstractIn Java bytecode, intra-method subroutines are employed to represent code in “finally” block...
New toolkits that parse, analyze, and transform Java Bytecode are frequently developed from scratch ...
The Java Virtual Machine embodies a verifier that performs a set of checks on Java bytecode programs...
In Java bytecode, intra-method subroutines are employed to represent code in “finally” blocks. The u...
In the standard Java implementation, a Java language program is compiled to Java bytecode and this b...
In this paper we propose an strategy for the design of compilers correct by construction for object-...
. The term "Java" is used to denote two different concepts: the language itself and the re...
Optimizing Java byte code is complicated by the fact that it uses a stack-based execution model. Ch...
The Java Virtual Machine embodies a verifier that performs a set of checks on Java bytecode programs...