Reasoning About Program Transformations: Imperative Programming and Flow of Data (Hardback)
Reasoning About Program Transformations: Imperative Programming and Flow of Data (Hardback)
Condition
VERY GOOD: This book is in very good condition, showing only slight signs of use and wear, mainly on the cover corners. The pages are clean and free from writing.
Product Details
From the back cover: "Capturing a computer program's data flow is critical to program transformation and code optimization. Unfortunately, the memory reuse intrinsic to imperative programming blurs this flow, thereby hiding the algorithm it implements.
"Reasoning About Program Transformations presents a practical framework to drive the data flow between individual run-time instances of source code statements in imperative programs. After an overview of key computing and transformation concepts and issues, the book is organized into prats that introduce its reasoning and transformation framework, revisit classical programming language concepts and classical compiler optimizations, and address memory optimizations in sequential and parallel languages. It emphasizes a novel framework for code optimization and demonstrates the accuracy advantages of symbolic computations over their more classical counterparts.
"Topics and features:
- Offers state-of-the-art symbolic analyses that handle array elements and statement instances individually and more precisely than classical approaches
- Provides numerous examples and exercises, complete with solutions
- Symbolic-solver examples utilize real code, which can be copied verbatim to reproduce the examples, thereby enabling readers to quickly start doing their own experiments
- Presents cutting-edge results, including those in symbolic reaching definition analysis, array data-flow analysis, and array expansion
- Describes how to formally prove program properties and prototype compiler optimizations
"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 compiler design will benefit from its presentation of data-flow and memory optimization techniques and tools."
CONTENTS
Preface
- Introduction
I - Basic Concepts
- Describing Program Executions
- Labels
II - Analyses and Transformations
- Revisiting Some Classical Compiler Concepts
- Reaching Definition Analysis
- Applications of Reaching Definition Analysis
- Some Classical Compiler Concepts, Part II
III - Data Flow and Expansion
- Single-Assignment Forms
- Maximal Static Expansions
- Parallel Languages
Conclusion: Toward Algorithm Recognition
References
Index
Share
