Título: A study of side-effect analyses for Java /
Autores: Razafimahefa, Chrislain.
Fecha: 1999
Publicador: McGill University - MCGILL
Fuente:
Tipo: Electronic Thesis or Dissertation
Tema: Computer Science.
Descripción: In the context of an object-oriented programming language such as Java, the ubiquitous use of instance fields and the presence of pointers (references to objects) make it difficult to understand a program's memory usage. Understanding memory usage is a key element for optimizing programs and side-effect analysis, an analysis to estimate variables that are inspected or altered by a computation, is of prime importance for understanding and optimizing Java programs.
In this thesis, we study the impact of a set of practical side-effect analyses on optimizing Java programs. The main contribution of the thesis is the design and implementation of two groups of analyses, namely type-based analysis and refers-to analysis. These analyses use different strategies to capture the effect of an instruction on variables present in the program. The former uses type information whereas the second models the program's storage shape graph. In both type-based analysis and refers-to analysis, two variations of the analysis are presented, one which considers the internal structure of objects such as fields as a key element of the analysis, and another which considers objects as aggregates and ignores their internal structure.
In order to assess the effectiveness of each analysis, we have implemented loop-invariant removal, an optimization which moves invariant computation out of loops. We used the Soot framework to implement the analyses and the optimization. We present both static and dynamic results based on experiments performed on a set of Java benchmarks of various sizes. Our results suggests that side-effect analysis is beneficial. Furthermore, we also notice that analyses that exploit the internal structure of objects, as a key element of the analysis, performs significantly better than their counterparts which do not.
Idioma: en