AbstractIn this paper, we present a term rewriting based library for manipulating Java bytecode. We define a mapping from bytecode programs to algebraic terms, and we use Tom, an extension of Java that adds pattern-matching facilities, to describe transformations. An originality of Tom is that it provides a powerful strategy language to express traversals over trees and to control how transformation rules are applied. To be even more expressive, we use CTL formulae as conditions and we show how their satisfiability can be ensured using the strategy formalism. Through small examples, we show how bytecode analysis and transformations can be defined in an elegant way. In particular, we outline the implementation of a ClassLoader parameterized ...
Extensions and improvements of the programming language Java and its related execution environment (...
Developing programming paradigms and languages that ease the program-mers' job of writing quality re...
Developing static analyzers requires an intensive handling of tree and graph structures representing...
International audienceIn this paper, we present a term rewriting based library for manipulating Java...
AbstractIn any language designed to express transformations, the notion of rewrite rule is a key fea...
Abstract. Bytecode rewriting is a portable way of altering Java’s behavior by changing Java classes ...
International audienceIn any language designed to express transformations, the notion of rewrite rul...
International audienceWe present the Tom language that extends Java with the purpose ofproviding hig...
. The term "Java" is used to denote two different concepts: the language itself and the re...
Following the experience of Elan, the Tom language was devel- oped to provide rewrite tools for impl...
In this paper we propose an strategy for the design of compilers correct by construction for object-...
The Java virtual machine executes stack-based bytecode. The intensive use of an operand stack has be...
AbstractIn this paper, we present the implementation in Tom of a de Bruijn indices generalization al...
In this paper we present Jimple, a 3-address intermediate representation that has been designed to s...
Abstract. Altering the semantics of programs has become of major interest. This is due to the necess...
Extensions and improvements of the programming language Java and its related execution environment (...
Developing programming paradigms and languages that ease the program-mers' job of writing quality re...
Developing static analyzers requires an intensive handling of tree and graph structures representing...
International audienceIn this paper, we present a term rewriting based library for manipulating Java...
AbstractIn any language designed to express transformations, the notion of rewrite rule is a key fea...
Abstract. Bytecode rewriting is a portable way of altering Java’s behavior by changing Java classes ...
International audienceIn any language designed to express transformations, the notion of rewrite rul...
International audienceWe present the Tom language that extends Java with the purpose ofproviding hig...
. The term "Java" is used to denote two different concepts: the language itself and the re...
Following the experience of Elan, the Tom language was devel- oped to provide rewrite tools for impl...
In this paper we propose an strategy for the design of compilers correct by construction for object-...
The Java virtual machine executes stack-based bytecode. The intensive use of an operand stack has be...
AbstractIn this paper, we present the implementation in Tom of a de Bruijn indices generalization al...
In this paper we present Jimple, a 3-address intermediate representation that has been designed to s...
Abstract. Altering the semantics of programs has become of major interest. This is due to the necess...
Extensions and improvements of the programming language Java and its related execution environment (...
Developing programming paradigms and languages that ease the program-mers' job of writing quality re...
Developing static analyzers requires an intensive handling of tree and graph structures representing...