𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Reasoning About Program Transformations: Imperative Programming and Flow of Data

✍ Scribed by Jean-François Collard (eds.)


Publisher
Springer-Verlag New York
Year
2004
Tongue
English
Leaves
246
Edition
1
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


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.

✦ Table of Contents


Front Matter....Pages I-XVIII
Introduction....Pages 1-15
Front Matter....Pages 17-17
Describing Program Executions....Pages 19-35
Labels....Pages 37-55
Front Matter....Pages 57-57
Revisiting Some Classical Compiler Concepts....Pages 59-76
Reaching Definition Analysis....Pages 77-122
Applications of Reaching Definition Analysis....Pages 123-142
Some Classical Compiler Concepts, Part II....Pages 143-162
Front Matter....Pages 163-163
Single-Assignment Forms....Pages 165-194
Maximal Static Expansion....Pages 195-210
Parallel Languages....Pages 211-222
Conclusion: Toward Algorithm Recognition....Pages 223-227
Back Matter....Pages 229-237

✦ Subjects


Programming Languages, Compilers, Interpreters; Programming Techniques


πŸ“œ SIMILAR VOLUMES


Reasoning about program transformations:
✍ Jean-Francois Collard πŸ“‚ Library πŸ“… 2003 πŸ› Springer 🌐 English

This new book provides a detailed, current, and pragmatic presentation of the program analyses and transformations that extract the flow of data in computer memory systems. Professionals, practitioners, and researchers in software engineering, computer engineering, program design analysis, and compi

Reasoning About Program Transformations
✍ Jean-Francois Collard πŸ“‚ Library πŸ“… 2002 🌐 English

The text contains a detailed and current presentation of the program analyses and transformations that extract the flow of data in computer memory systems. The emphasis is on a framework for the optimization of code for imperative programs and greater computer systems efficiency. In addition, the au

Reasoning About Program Transformations
✍ Jean-Francois Collard πŸ“‚ Library πŸ“… 2002 πŸ› Springer 🌐 English

The text contains a detailed and current presentation of the program analyses and transformations that extract the flow of data in computer memory systems. The emphasis is on a framework for the optimization of code for imperative programs and greater computer systems efficiency. In addition, the au

Thinking Programs: Logical Modeling and
✍ Wolfgang Schreiner πŸ“‚ Library πŸ“… 2021 πŸ› Springer 🌐 English

<span>This book describes some basic principles that allow developers of computer programs (computer scientists, software engineers, programmers) to clearly <i>think</i> about the artifacts they deal with in their daily work: data types, programming languages, programs written in these languages tha

Thinking Programs: Logical Modeling and
✍ Wolfgang Schreiner πŸ“‚ Library πŸ“… 2021 πŸ› Springer 🌐 English

This book describes some basic principles that allow developers of computer programs (computer scientists, software engineers, programmers) to clearly <i>think</i> about the artifacts they deal with in their daily work: data types, programming languages, programs written in these languages that comp

Control Flow and Data Flow: Concepts of
✍ Edsger W. Dijkstra (auth.), Manfred Broy (eds.) πŸ“‚ Library πŸ“… 1985 πŸ› Springer-Verlag Berlin Heidelberg 🌐 English

<p>In a time of multiprocessor machines, message switching networks and process control programming tasks, the foundations of programming distributed systems are among the central challenges for computing sci enti sts. The foundati ons of di stributed programming compri se all the fasci nating quest