Reasoning about program transformations: imperative programming and flow of data
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
New York, NY [u.a]
Springer New York
2010
|
Ausgabe: | [1. ed., Softcover version of original hardcover edition 2003] |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis Klappentext |
Beschreibung: | XVIII, 237 S. Ill., graph. Darst. ST 240 |
ISBN: | 9781441929815 1441929819 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV036863207 | ||
003 | DE-604 | ||
005 | 20110113 | ||
007 | t | ||
008 | 101213s2010 ad|| |||| 00||| eng d | ||
015 | |a 10,N47 |2 dnb | ||
016 | 7 | |a 1008422509 |2 DE-101 | |
020 | |a 9781441929815 |c Pb. : EUR 64.15 (DE) (freier Pr.), sfr 99.50 (freier Pr.) |9 978-1-441-92981-5 | ||
020 | |a 1441929819 |c Pb. : EUR 64.15 (DE) (freier Pr.), sfr 99.50 (freier Pr.) |9 1-441-92981-9 | ||
024 | 3 | |a 9781441929815 | |
028 | 5 | 2 | |a Best.-Nr.: 12980154 |
035 | |a (OCoLC)706063430 | ||
035 | |a (DE-599)DNB1008422509 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
049 | |a DE-739 | ||
084 | |a ST 240 |0 (DE-625)143625: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Collard, Jean-François |e Verfasser |4 aut | |
245 | 1 | 0 | |a Reasoning about program transformations |b imperative programming and flow of data |c Jean-Francois Collard |
250 | |a [1. ed., Softcover version of original hardcover edition 2003] | ||
264 | 1 | |a New York, NY [u.a] |b Springer New York |c 2010 | |
300 | |a XVIII, 237 S. |b Ill., graph. Darst. |c ST 240 | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Datenfluss |0 (DE-588)4191571-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Algorithmische Programmiersprache |0 (DE-588)4141876-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmanalyse |0 (DE-588)4175841-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Paralleles Programm |0 (DE-588)4552796-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmtransformation |0 (DE-588)4263654-1 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Programmtransformation |0 (DE-588)4263654-1 |D s |
689 | 0 | 1 | |a Programmanalyse |0 (DE-588)4175841-9 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Algorithmische Programmiersprache |0 (DE-588)4141876-1 |D s |
689 | 1 | 1 | |a Paralleles Programm |0 (DE-588)4552796-9 |D s |
689 | 1 | 2 | |a Datenfluss |0 (DE-588)4191571-9 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |3 Klappentext |
999 | |a oai:aleph.bib-bvb.de:BVB01-020778928 |
Datensatz im Suchindex
_version_ | 1804143564220792832 |
---|---|
adam_text | Contents
Preface
vii
1
Introduction
1
1.1
Computers
Have
Memory
........................ 2
1.2
Programs
Update Memory
....................... 4
1.3
What Is a Program
Transformation?
When Is It
Correct?
....... 5
1.4
Parallelism and Parallel Languages
................... 6
1.5
Transforming a Program Into a Parallel One
.............. 8
1.6
Another Typical Transformation: Expansion
.............. 9
.7
Yet Another Transformation: Contraction
............... 11
.8
Dealing with Statement Instances
.................... 11
.9
Parameters
................................ 13
.10
What This Book Is About
........................ 14
.11
What This Book Is Not About
..................... 14
1 Basic Concepts
17
2
Describing Program Executions
19
2.1
Language and Statements
........................ 20
2.2
Program States, Computations, and Paths
............... 22
2.3
Statement Instances
........................... 28
2.4
Memory
...........................,,,.,, 29
2.5
Execution Order
............................. 32
2.6
Relations
................................ 33
2.7
Scheduling
............................... 34
2.8
From Math to Compilers
........................ 35
3
Labels
37
3.1
The Case of Loop Nests
......................... 37
3.2
Changing the Execution Order
..................... 45
3.3
The Case of Recursive Programs
.................... 47
3.4
Further Reading
............................. 55
3.5
Conclusion
............................... 55
II
Analyses
and Transformations
57
4
Revisiting Some Classical Compiler Concepts
59
4.1
Alias Analysis
.............................. 59
4.2
Reaching Definition Analysis
...................... 61
4.3
Reaching Definition Analysis and Program Transformations
..... 64
4.4
Dominance
............................... 65
4.4.1
Semantic versus Syntactic Dominance
............. 66
4.4.2
The Case of Recursive Programs
................ 69
4.5
Initialized, Live, and Dead Variables
.................. 71
4.6
Conclusion
............................... 75
5
Reaching Definition Analysis
77
5.1
Iterative Reaching Definitions Analyses
................ 81
5.1.1
The Classical Setting
...................... 81
5.1.2
Iterative Instancewise RD Analyses
.............. 83
5.2
Direct Reaching Definition Analyses
.................. 86
5.2.1
The Intuition
.......................... 86
5.2.2
The
Nonaffine
Case
....................... 98
5.2.3
Plugging In Additional Properties
............... 104
5.2.4
Shortcomings of Direct Techniques
.............. 112
5.3
Recursive Programs
........................... 112
5.3.1
Expressing Relations on Words
................ 113
5.3.2
Recursive Programs with Arrays
................ 116
5.4
Further Reading
............................. 121
5.5
Conclusion
............................... 122
6
Applications of Reaching Definition Analysis
123
6.1
Value Sharing
.............................. 123
6.2
Successive Reaching Definition Analyses
............... 127
6.3
Reaching Definition Analyses and Verification
............. 131
6.3.1
Reaching Definitions and Assertions
.............. 134
6.3.2
Reaching Definitions and Weakest Preconditions
....... 138
6.4
Conclusion
............................... 142
7
Some Classical Compiler Concepts, Part II
143
7.1
Dependence Analysis
.......................... 143
7.2
Previous References
........................... 148
7.3
Last References
............................. 155
7.4
Iteration-based Slicing
......................... 155
7.4.1
A Few Words on Transitive Closure
.............. 155
7.4.2
Program Slicing
........................ 158
7.5
Conclusion
............................... 161
Ш
Data Flow and Expansion
163
8
Single-Assignment Forms
165
8.1
Single-Assignment Form
........................ 165
8.1.1
The Intuition: Straight-Line Codes
............... 166
8.1.2
The Case of Loops
....................... 170
8.1.3
Recursive Procedures
..................... . 176
8.1.4
Array Single Assignment
.................... 179
8.1.5
Single Assignment and Systolic Array Design
......... 187
8.2
Static Single Assignment
........................ 188
8.3
Further Reading
............................. 192
8.4
Conclusion
............................... 193
9
Maximal Static Expansion
195
9.1
Motivating Examples
.......................... 196
9.2
Problem Statement
........................... 200
9.3
Constructing the Maximal Static Expansion
.............. 202
9.4
Back to the Examples
.......................... 203
9.5
Conclusion
............................... 210
10
Parallel Languages
211
10.1
Parallel Languages
........................... 211
10.2
Execution Order
............................. 214
10.3
Reaching Definition Analysis
...................... 217
10.4
(S)SA Forms for Explicitly Parallel Programs
............. 219
10.5
Further Reading
............................. 221
10.6
Conclusion
............................... 222
11
Conclusion: Toward Algorithm Recognition
223
References
229
Index
236
Capturing a computer program s data flow is critical to program transformation and
code optimization. Unfortunately, the memory reuse intrinsic to imperative program¬
ming blurs this flow, thereby hiding the algorithm it implements.
Reasoning About Program Transformations presents a practical framework to derive the
data flow between individual run-time instances of source code statements in impera¬
tive programs. After an overview of key computing and transformation concepts and
issues, the book is organized into parts 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 sys¬
tems. Professionals, practitioners, and researchers in software engineering, computer
engineering, program design analysis, and compiler design will benefit from its presen¬
tation of data-flow and memory optimization techniques and tools.
|
any_adam_object | 1 |
author | Collard, Jean-François |
author_facet | Collard, Jean-François |
author_role | aut |
author_sort | Collard, Jean-François |
author_variant | j f c jfc |
building | Verbundindex |
bvnumber | BV036863207 |
classification_rvk | ST 240 |
ctrlnum | (OCoLC)706063430 (DE-599)DNB1008422509 |
discipline | Informatik |
edition | [1. ed., Softcover version of original hardcover edition 2003] |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02433nam a2200517 c 4500</leader><controlfield tag="001">BV036863207</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20110113 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">101213s2010 ad|| |||| 00||| eng d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">10,N47</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1008422509</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781441929815</subfield><subfield code="c">Pb. : EUR 64.15 (DE) (freier Pr.), sfr 99.50 (freier Pr.)</subfield><subfield code="9">978-1-441-92981-5</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1441929819</subfield><subfield code="c">Pb. : EUR 64.15 (DE) (freier Pr.), sfr 99.50 (freier Pr.)</subfield><subfield code="9">1-441-92981-9</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9781441929815</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Best.-Nr.: 12980154</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)706063430</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1008422509</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-739</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 240</subfield><subfield code="0">(DE-625)143625:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Collard, Jean-François</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Reasoning about program transformations</subfield><subfield code="b">imperative programming and flow of data</subfield><subfield code="c">Jean-Francois Collard</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">[1. ed., Softcover version of original hardcover edition 2003]</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">New York, NY [u.a]</subfield><subfield code="b">Springer New York</subfield><subfield code="c">2010</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVIII, 237 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield><subfield code="c">ST 240</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datenfluss</subfield><subfield code="0">(DE-588)4191571-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Algorithmische Programmiersprache</subfield><subfield code="0">(DE-588)4141876-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmanalyse</subfield><subfield code="0">(DE-588)4175841-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Paralleles Programm</subfield><subfield code="0">(DE-588)4552796-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmtransformation</subfield><subfield code="0">(DE-588)4263654-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Programmtransformation</subfield><subfield code="0">(DE-588)4263654-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Programmanalyse</subfield><subfield code="0">(DE-588)4175841-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Algorithmische Programmiersprache</subfield><subfield code="0">(DE-588)4141876-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Paralleles Programm</subfield><subfield code="0">(DE-588)4552796-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="2"><subfield code="a">Datenfluss</subfield><subfield code="0">(DE-588)4191571-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Klappentext</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-020778928</subfield></datafield></record></collection> |
id | DE-604.BV036863207 |
illustrated | Illustrated |
indexdate | 2024-07-09T22:49:40Z |
institution | BVB |
isbn | 9781441929815 1441929819 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-020778928 |
oclc_num | 706063430 |
open_access_boolean | |
owner | DE-739 |
owner_facet | DE-739 |
physical | XVIII, 237 S. Ill., graph. Darst. ST 240 |
publishDate | 2010 |
publishDateSearch | 2010 |
publishDateSort | 2010 |
publisher | Springer New York |
record_format | marc |
spelling | Collard, Jean-François Verfasser aut Reasoning about program transformations imperative programming and flow of data Jean-Francois Collard [1. ed., Softcover version of original hardcover edition 2003] New York, NY [u.a] Springer New York 2010 XVIII, 237 S. Ill., graph. Darst. ST 240 txt rdacontent n rdamedia nc rdacarrier Datenfluss (DE-588)4191571-9 gnd rswk-swf Algorithmische Programmiersprache (DE-588)4141876-1 gnd rswk-swf Programmanalyse (DE-588)4175841-9 gnd rswk-swf Paralleles Programm (DE-588)4552796-9 gnd rswk-swf Programmtransformation (DE-588)4263654-1 gnd rswk-swf Programmtransformation (DE-588)4263654-1 s Programmanalyse (DE-588)4175841-9 s DE-604 Algorithmische Programmiersprache (DE-588)4141876-1 s Paralleles Programm (DE-588)4552796-9 s Datenfluss (DE-588)4191571-9 s Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA Klappentext |
spellingShingle | Collard, Jean-François Reasoning about program transformations imperative programming and flow of data Datenfluss (DE-588)4191571-9 gnd Algorithmische Programmiersprache (DE-588)4141876-1 gnd Programmanalyse (DE-588)4175841-9 gnd Paralleles Programm (DE-588)4552796-9 gnd Programmtransformation (DE-588)4263654-1 gnd |
subject_GND | (DE-588)4191571-9 (DE-588)4141876-1 (DE-588)4175841-9 (DE-588)4552796-9 (DE-588)4263654-1 |
title | Reasoning about program transformations imperative programming and flow of data |
title_auth | Reasoning about program transformations imperative programming and flow of data |
title_exact_search | Reasoning about program transformations imperative programming and flow of data |
title_full | Reasoning about program transformations imperative programming and flow of data Jean-Francois Collard |
title_fullStr | Reasoning about program transformations imperative programming and flow of data Jean-Francois Collard |
title_full_unstemmed | Reasoning about program transformations imperative programming and flow of data Jean-Francois Collard |
title_short | Reasoning about program transformations |
title_sort | reasoning about program transformations imperative programming and flow of data |
title_sub | imperative programming and flow of data |
topic | Datenfluss (DE-588)4191571-9 gnd Algorithmische Programmiersprache (DE-588)4141876-1 gnd Programmanalyse (DE-588)4175841-9 gnd Paralleles Programm (DE-588)4552796-9 gnd Programmtransformation (DE-588)4263654-1 gnd |
topic_facet | Datenfluss Algorithmische Programmiersprache Programmanalyse Paralleles Programm Programmtransformation |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020778928&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT collardjeanfrancois reasoningaboutprogramtransformationsimperativeprogrammingandflowofdata |