Compiling with continuations:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Cambridge [u.a.]
Cambridge Univ. Press
2006
|
Ausgabe: | digitally print. (with corr.) |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | X, 260 S. |
ISBN: | 052103311X 9780521033114 0521416957 9780521416955 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035679995 | ||
003 | DE-604 | ||
005 | 20090916 | ||
007 | t | ||
008 | 090817s2006 |||| 00||| eng d | ||
020 | |a 052103311X |c pbk |9 0-521-03311-X | ||
020 | |a 9780521033114 |c pbk |9 978-0-521-03311-4 | ||
020 | |a 0521416957 |c hbk |9 0-521-41695-7 | ||
020 | |a 9780521416955 |c hbk |9 978-0-521-41695-5 | ||
035 | |a (OCoLC)255161244 | ||
035 | |a (DE-599)BVBBV035679995 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-473 |a DE-83 |a DE-29T |a DE-706 | ||
050 | 0 | |a QA76.76.C65 | |
082 | 0 | |a 005.453 | |
084 | |a ST 255 |0 (DE-625)143629: |2 rvk | ||
100 | 1 | |a Appel, Andrew W. |e Verfasser |4 aut | |
245 | 1 | 0 | |a Compiling with continuations |c Andrew W. Appel |
250 | |a digitally print. (with corr.) | ||
264 | 1 | |a Cambridge [u.a.] |b Cambridge Univ. Press |c 2006 | |
300 | |a X, 260 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Compilers (Computer programs) | |
650 | 4 | |a Standard ML of New Jersey | |
650 | 4 | |a Compilers (Computer programs) | |
650 | 4 | |a Standard ML of New Jersey | |
650 | 0 | 7 | |a Optimierung |0 (DE-588)4043664-0 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Metasprache |0 (DE-588)4038943-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Compiler |0 (DE-588)4148248-7 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Standard ML |0 (DE-588)4295302-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Compiler |0 (DE-588)4148248-7 |D s |
689 | 0 | 1 | |a Metasprache |0 (DE-588)4038943-1 |D s |
689 | 0 | |8 1\p |5 DE-604 | |
689 | 1 | 0 | |a Compiler |0 (DE-588)4148248-7 |D s |
689 | 1 | 1 | |a Optimierung |0 (DE-588)4043664-0 |D s |
689 | 1 | |8 2\p |5 DE-604 | |
689 | 2 | 0 | |a Standard ML |0 (DE-588)4295302-9 |D s |
689 | 2 | |8 3\p |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017734274&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-017734274 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 3\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804139386022920192 |
---|---|
adam_text | CONTENTS
Acknowledgments
ix
Overview
1
1.1
Continuation-passing style
....................... 1
1.2
Advantages of CPS
........................... 4
1.3
What is ML?
.............................. 6
1.4
Compiler organization
......................... §
Continuation-passing style
11
2.1
The CPS datatype
........................... 11
2.2
Functions that escape
......................... 16
2.3
Scope rales
............................... 17
2.4
Closure conversion
........................... 18
2.5
Spilling
................................. 21
Semantics of the CPS
23
ML-specific optimizations
37
4.1
Data representation
.......................... 37
4.2
Pattern matching
............................ 43
4.3
Equality
................................. 45
4.4
Unboxed updates
............................ 46
4.5
The
ішш
-ML
sublanguage
....................... 46
4.6
Exception declarations
......................... 49
4.?
The lambda language
......................... 50
4.8
The module system
........................... 52
Conversion into CFS
55
5.1
Variable»
aud
constants
........................ 55
5.2
Records and selection
........,,..,............
SS
5.3
Primitive arithmetic operators
.................... 5?
5.4 Function calls
.............................. 59
5.5
Mutually recursive
fonctions
.....................» 60
5.8
Data constructors
............................ 60
5.7
Case statements
........... -...............· 61
CONTENTS
5.8
Exception handling
........................... 63
5.9
Call with current continuation
.................... 64
6
Optimization of the CPS
67
6.1
Constant folding and
/î-contraction
.................. 68
6.2
Eta reduction and uncurrying
..................... 76
6.3
Cascading optimizations
........................ 78
6.4
Implementation
............................. 80
7
Beta expansion
83
7.1
When to do in-line expansion
..................... 87
7.2
Estimating the savings
......................... 89
7.3
Runaway expansion
.......................... 92
8
Hoisting
93
8.1
Merging FIX definitions
........................ 93
8.2
Rules for hoisting
............................ 95
8.3
Hoisting optimizations
......................... 96
β
Common subexpressions
99
10
Closure conversion
103
10.1
A simple example
............................ 104
10.2
A bigger example
............................ 106
10.3
Closure-passing style
......................... ■ 109
10.4
The closare-conversion algorithm
................... 109
1Ö.6
Closure representation
......................... 112
10.6
Caliee-ssve registers
.......................... 114
10.7
Callee-save continuation closures
................... 119
10.8
Stack allocation of closures
...................... 122
10.9
Lifting function definitions to top level
................ 124
11
Register spilling
125
11.1
Rearranging the expression
...................... 128
11.2
The spilling algorithm
......................... 128
12
Space complexity
133
12.1
Axioms for analyzing space
...................... 136
12.2
Preserving space complexity
...................... 137
12.3
Closure representations
........................ 142
12.4
When to initiate garbage collection
......,........... 144
IS The abstract machine
147
13.1
Compilation »aits
........................... 147
13.2
lafcerfaee with the garbage collector
.................. 148
18.3
Position-independent code
....................... 150
CONTENTS_______________________________________________________
vii
13.4
Special-purpose registers
........................ 151
13.5
Pseudo-operations
........................... 154
13.6
Instructions of the
continuation
machine
............... 155
13.7
Register assignment
.......................... 158
13.8
Branch prediction
............................ 160
13.9
Generation of abstract-machine instructions
............. 161
13.10
Integer arithmetic
........................... 161
13.11
Unboxed floating-point values
.................... 162
14
Machine-code generation.
165
14.1
Translation for the VAX
........................ 165
14.1.1
Span-dependent instructions
................. 167
14.2
Translation for the
MC68020..................... 168
14.3
Translation for the MIPS and SPARC
................ 169
14.3.1
PC-relative addressing
..................... 170
14.3.2
Instruction scheduling
..................... 170
14.3.3
Anti-aliasing
.......................... 171
14.3.4
Alternating temporaries
.................... 173
14.4
An example
............................... 174
15
Performance evaluation
179
15.1
Hardware
................................ 181
15.2
Measurements of individual optimizations
.............. 183
15.3
Tuning the parameters
......................... 187
15.4
More about caches
........................... 187
15.5
Compile time
.............................. 108
15.Ö
Comparison with other compilers
................... 200
15.7
Conclusions
............................... 201
16
The runtime system
205
16.1
Efficiency of garbage collection
.................... 205
16.2
Breadth-first copying
.......................... 206
16.3
Generational garbage collection
.................... 20?
16.4
Runtime data formats
........................ . 210
16.5
Big bags of pages
...........................- 211
16.6
Asynchronous interrupts
........................ 212
IT Parallel programming
215
17.1
Coroutines and semaphores
...................... 216
1T.2 Better programming models
....................... 219
1T.3 Multiple processors
........................... 220
17.4
Multiprocessor garbage collection
................... 221
viii
___________________________________________________CONTENTS
18
Future
directions
223
18.1
Control
dependencies
.......................... 223
18.2
Type information
............................ 225
18.3
Loop optimizations
........................... 225
18.4
Garbage collection
........................... 227
18.5
Static single-assignment form
..................... 228
18.6
State threading
............................. 228
A Introduction to ML
229
A.I Expressions
............................... 231
A.2 Patterns
................................. 233
A.3 Declarations
............................... 235
A.4 Some examples
............................. 236
В
Semantics of the CPS
239
С
Obtaining Standard ML of New Jersey
245
D
Readings
247
Bibliography
249
Index
256
|
any_adam_object | 1 |
author | Appel, Andrew W. |
author_facet | Appel, Andrew W. |
author_role | aut |
author_sort | Appel, Andrew W. |
author_variant | a w a aw awa |
building | Verbundindex |
bvnumber | BV035679995 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.C65 |
callnumber-search | QA76.76.C65 |
callnumber-sort | QA 276.76 C65 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 255 |
ctrlnum | (OCoLC)255161244 (DE-599)BVBBV035679995 |
dewey-full | 005.453 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.453 |
dewey-search | 005.453 |
dewey-sort | 15.453 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | digitally print. (with corr.) |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02286nam a2200577 c 4500</leader><controlfield tag="001">BV035679995</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20090916 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090817s2006 |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">052103311X</subfield><subfield code="c">pbk</subfield><subfield code="9">0-521-03311-X</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780521033114</subfield><subfield code="c">pbk</subfield><subfield code="9">978-0-521-03311-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0521416957</subfield><subfield code="c">hbk</subfield><subfield code="9">0-521-41695-7</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780521416955</subfield><subfield code="c">hbk</subfield><subfield code="9">978-0-521-41695-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)255161244</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035679995</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-706</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.C65</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.453</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 255</subfield><subfield code="0">(DE-625)143629:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Appel, Andrew W.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Compiling with continuations</subfield><subfield code="c">Andrew W. Appel</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">digitally print. (with corr.)</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cambridge [u.a.]</subfield><subfield code="b">Cambridge Univ. Press</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">X, 260 S.</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=" " ind2="4"><subfield code="a">Compilers (Computer programs)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Standard ML of New Jersey</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Compilers (Computer programs)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Standard ML of New Jersey</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Optimierung</subfield><subfield code="0">(DE-588)4043664-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Metasprache</subfield><subfield code="0">(DE-588)4038943-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Compiler</subfield><subfield code="0">(DE-588)4148248-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Standard ML</subfield><subfield code="0">(DE-588)4295302-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Compiler</subfield><subfield code="0">(DE-588)4148248-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Metasprache</subfield><subfield code="0">(DE-588)4038943-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Compiler</subfield><subfield code="0">(DE-588)4148248-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Optimierung</subfield><subfield code="0">(DE-588)4043664-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Standard ML</subfield><subfield code="0">(DE-588)4295302-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="8">3\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</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=017734274&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017734274</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">3\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
id | DE-604.BV035679995 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T21:43:15Z |
institution | BVB |
isbn | 052103311X 9780521033114 0521416957 9780521416955 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017734274 |
oclc_num | 255161244 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG DE-83 DE-29T DE-706 |
owner_facet | DE-473 DE-BY-UBG DE-83 DE-29T DE-706 |
physical | X, 260 S. |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Cambridge Univ. Press |
record_format | marc |
spelling | Appel, Andrew W. Verfasser aut Compiling with continuations Andrew W. Appel digitally print. (with corr.) Cambridge [u.a.] Cambridge Univ. Press 2006 X, 260 S. txt rdacontent n rdamedia nc rdacarrier Compilers (Computer programs) Standard ML of New Jersey Optimierung (DE-588)4043664-0 gnd rswk-swf Metasprache (DE-588)4038943-1 gnd rswk-swf Compiler (DE-588)4148248-7 gnd rswk-swf Standard ML (DE-588)4295302-9 gnd rswk-swf Compiler (DE-588)4148248-7 s Metasprache (DE-588)4038943-1 s 1\p DE-604 Optimierung (DE-588)4043664-0 s 2\p DE-604 Standard ML (DE-588)4295302-9 s 3\p DE-604 Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017734274&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 3\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Appel, Andrew W. Compiling with continuations Compilers (Computer programs) Standard ML of New Jersey Optimierung (DE-588)4043664-0 gnd Metasprache (DE-588)4038943-1 gnd Compiler (DE-588)4148248-7 gnd Standard ML (DE-588)4295302-9 gnd |
subject_GND | (DE-588)4043664-0 (DE-588)4038943-1 (DE-588)4148248-7 (DE-588)4295302-9 |
title | Compiling with continuations |
title_auth | Compiling with continuations |
title_exact_search | Compiling with continuations |
title_full | Compiling with continuations Andrew W. Appel |
title_fullStr | Compiling with continuations Andrew W. Appel |
title_full_unstemmed | Compiling with continuations Andrew W. Appel |
title_short | Compiling with continuations |
title_sort | compiling with continuations |
topic | Compilers (Computer programs) Standard ML of New Jersey Optimierung (DE-588)4043664-0 gnd Metasprache (DE-588)4038943-1 gnd Compiler (DE-588)4148248-7 gnd Standard ML (DE-588)4295302-9 gnd |
topic_facet | Compilers (Computer programs) Standard ML of New Jersey Optimierung Metasprache Compiler Standard ML |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017734274&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT appelandreww compilingwithcontinuations |