Catálogo de publicaciones - libros

Compartir en
redes sociales


Compiler Construction: 16th International Conference, CC 2007, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2007, Braga, Portugal, March 26-30, 2007. Proceedings./

Shriram Krishnamurthi ; Martin Odersky (eds.)

En conferencia: 16º International Conference on Compiler Construction (CC) . Braga, Portugal . March 26, 2007 - March 30, 2007

Resumen/Descripción – provisto por la editorial

No disponible.

Palabras clave – provistas por la editorial

No disponibles.

Disponibilidad
Institución detectada Año de publicación Navegá Descargá Solicitá
No detectada 2007 SpringerLink

Información

Tipo de recurso:

libros

ISBN impreso

978-3-540-71228-2

ISBN electrónico

978-3-540-71229-9

Editor responsable

Springer Nature

País de edición

Reino Unido

Fecha de publicación

Información sobre derechos de publicación

© Springer-Verlag Berlin Heidelberg 2007

Tabla de contenidos

Program Refactoring, Program Synthesis, and Model-Driven Development

Don Batory

Program refactoring, feature-based and aspect-oriented software synthesis, and model-driven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations ) to map programs to other programs. In this paper, I explore their underlying connections by reviewing recent advances in each area from an architectural metaprogramming perspective. I conjecture how these areas can converge and outline a theory that may unify them.

Palabras clave: Application Program Interface; Category Theory; Software Product Line; Depth First Search; State Chart.

- Program Analysis | Pp. 156-171

A Practical Escape and Effect Analysis for Building Lightweight Method Summaries

Sigmund Cherem; Radu Rugina

We present a unification-based, context-sensitive escape and effect analysis that infers lightweight method summaries describing heap effects. The analysis is parameterized on two values: k , indicating the heap depth beyond which objects escape; and b , a branching factor indicating the maximum number of fields per object that the analysis precisely tracks. Restricting these parameters to small values allows us to keep the method summaries lightweight and practical. Results collected from our implementation shows that the analysis scales well to large code bases such as the GNU Classpath libraries. They also show that summaries can help analysis clients approximate the effects of method calls, avoiding expensive inter-procedural computations, or imprecise worst-case assumptions.

Palabras clave: Method Call; Method Signature; Program Language Design; Method Summary; Virtual Signature.

- Program Analysis | Pp. 172-186

Layout Transformations for Heap Objects Using Static Access Patterns

Jinseong Jeon; Keoncheol Shin; Hwansoo Han

As the amount of data used by programs increases due to the growth of hardware storage capacity and computing power, efficient memory usage becomes a key factor for performance. Since modern applications heavily use structures allocated in the heap, this paper proposes an efficient structure layout based on static analyses. Unlike most of the previous work, our approach is an entirely static transformation of programs. We extract access patterns from source programs and represent them with regular expressions . Repetitive accesses are usually important pieces of information for locality optimizations. The expressive power of regular expressions is appropriate to represent those repetitive accesses along with various access patterns according to the control flow of programs. By interpreting statically obtained access patterns, we choose suitable structures for pool allocation and reorganize field layouts of the chosen structures. To verify the effect of our static optimization, we implement our analyses and optimizations with the CIL compiler. Our experiments with the Olden benchmarks demonstrate that layout transformations for heap objects based on our static access pattern analysis improve cache locality by 38% and performance by 24%.

Palabras clave: Regular Expression; Access Pattern; Memory Management; Recursive Call; Structure Layout.

- Program Analysis | Pp. 187-201

A New Elimination-Based Data Flow Analysis Framework Using Annotated Decomposition Trees

Bernhard Scholz; Johann Blieberger

We introduce a new framework for elimination-based data flow analysis. We present a simple algorithm and a delayed algorithm that exhibit a worst-case complexity of ${\mathcal O}(n^2)$ and $\tilde{{\mathcal O}}(m)$ . The algorithms use a new compact data structure for representing reducible flow graphs called Annotated Decomposition Trees . This data structure extends a binary tree to represent flowgraph information, dominance relation of flowgraphs, and the topological order of nodes. The construction of the annotated decomposition trees runs in ${\mathcal O}(n + m)$ . Experiments were conducted with reducible flowgraphs of the SPEC2000 benchmark suite.

Palabras clave: Execution Time; Regular Expression; Dominator Tree; Decomposition Tree; Elimination Method.

- Program Analysis | Pp. 202-217

A Declarative Framework for Analysis and Optimization

Henry Falconer; Paul H. J. Kelly; David M. Ingram; Michael R. Mellor; Tony Field; Olav Beckmann

DeepWeaver-1 is a tool supporting cross-cutting program analysis and transformation components, called “weaves”. Like an aspect, a DeepWeaver weave consists of a query part, and a part which may modify code. DeepWeaver’s query language is based on Prolog, and provides access to data-flow and control-flow reachability analyses. DeepWeaver provides a declarative way to access the internal structure of methods, and supports cross-cutting weaves which operate on code blocks from different parts of the codebase simultaneously. DeepWeaver operates at the level of bytecode, but offers predicates to extract structured control flow constructs. This paper motivates the design, and demonstrates some of its power, using a sequence of examples including performance profiling and domain-specific performance optimisations for database access and remote method invocation.

Palabras clave: Query Language; Query Optimisation; Query Execution; Parameter List; Abstract Syntax Tree.

- Program Analysis | Pp. 218-232