A declarative framework for analysis and optimization

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

  • Affiliations:
  • Department of Computing, Imperial College London, London, UK;Department of Computing, Imperial College London, London, UK;Department of Computing, Imperial College London, London, UK;Department of Computing, Imperial College London, London, UK;Department of Computing, Imperial College London, London, UK;Department of Computing, Imperial College London, London, UK

  • Venue:
  • CC'07 Proceedings of the 16th international conference on Compiler construction
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

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. Deep-Weaver 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.