Skip to main content

Reasoning About Program Transformations

Imperative Programming and Flow of Data

  • Book
  • © 2003

Overview

This is a preview of subscription content, log in via an institution to check access.

Access this book

eBook USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

Licence this eBook for your library

Institutional subscriptions

Table of contents (11 chapters)

  1. Introduction

  2. Basic Concepts

  3. Data Flow and Expansion

Keywords

About this book

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.

Editors and Affiliations

  • Compiler Research Laboratory, Intel Corporation, Santa Clara, USA

    Jean-François Collard

Bibliographic Information

  • Book Title: Reasoning About Program Transformations

  • Book Subtitle: Imperative Programming and Flow of Data

  • Editors: Jean-François Collard

  • DOI: https://doi.org/10.1007/b97654

  • Publisher: Springer New York, NY

  • eBook Packages: Springer Book Archive

  • Copyright Information: Springer Science+Business Media New York 2003

  • Hardcover ISBN: 978-0-387-95391-5Published: 16 October 2002

  • Softcover ISBN: 978-1-4419-2981-5Published: 03 December 2010

  • eBook ISBN: 978-0-387-22461-9Published: 14 June 2007

  • Edition Number: 1

  • Number of Pages: XVIII, 238

  • Topics: Programming Languages, Compilers, Interpreters, Programming Techniques

Publish with us