Reasoning About Program Transformations

Imperative Programming and Flow of Data

  • Jean-François Collard

Table of contents

  1. Front Matter
    Pages I-XVIII
  2. Introduction

    1. Pages 1-15
  3. Basic Concepts

    1. Front Matter
      Pages 17-17
    2. Pages 37-55
  4. Analyses and Transformations

  5. Data Flow and Expansion

    1. Front Matter
      Pages 163-163
    2. Pages 165-194
    3. Pages 195-210
    4. Pages 211-222
  6. Back Matter
    Pages 229-237

About this book

Introduction

Overview The motivation of this text lies in what we believe is the inadequacy of current frameworks to reason about the ?ow of data in imperative programs. This inadequacy clearly shows up when dealing with the individual side effects of loop iterations. - deed, we face a paradoxical situation where, on the one hand, a typical program spends most of its execution time iterating or recursing on a few lines of codes, and, on the other hand, current optimization frameworks are clumsy when trying to capture the effects of each incarnation of these few lines—frameworks we inherited from designs made decades ago. The reasons are manyfold, but one of them stands out: The same concepts have been used, on the one hand, to represent and manipulate programs internally in compilers and, on the other hand, to allow us humans to reason about optimizations. Unfortunately, these two uses have different aims and constraints. An example of such a situation is given by control-?ow graphs of basic blocks, which have been - tremely useful in practice as an internal representation of programs, but which are not always adequate or convenient to formally think about programs and specify their transformations. In some cases, de?nitions based on control-?ow graphs can be overly restrictive. Dominance, studied in Chapter 4, is a good example.

Keywords

algorithm algorithms compiler design language optimization programming software software engineering

Editors and affiliations

  • Jean-François Collard
    • 1
  1. 1.Compiler Research LaboratoryIntel CorporationSanta ClaraUSA

Bibliographic information

  • DOI https://doi.org/10.1007/b97654
  • Copyright Information Springer-Verlag New York, Inc. 2003
  • Publisher Name Springer, New York, NY
  • eBook Packages Springer Book Archive
  • Print ISBN 978-0-387-95391-5
  • Online ISBN 978-0-387-22461-9
  • About this book