Types and programming languages:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Cambridge, Mass.[u.a.]
MIT Press
2002
|
Schlagworte: | |
Online-Zugang: | Errata Inhaltsverzeichnis |
Beschreibung: | XXI, 623 S. |
ISBN: | 0262162091 9780262162098 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV014167671 | ||
003 | DE-604 | ||
005 | 20240220 | ||
007 | t | ||
008 | 020226s2002 |||| 00||| eng d | ||
020 | |a 0262162091 |9 0-262-16209-1 | ||
020 | |a 9780262162098 |9 978-0-262-16209-8 | ||
035 | |a (OCoLC)248491285 | ||
035 | |a (DE-599)BVBBV014167671 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-473 |a DE-739 |a DE-824 |a DE-19 |a DE-91G |a DE-29T |a DE-83 |a DE-634 |a DE-11 |a DE-188 |a DE-706 | ||
050 | 0 | |a QA76.7 | |
082 | 0 | |a 005.13 | |
084 | |a ST 136 |0 (DE-625)143591: |2 rvk | ||
084 | |a ST 140 |0 (DE-625)143592: |2 rvk | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 240 |0 (DE-625)143625: |2 rvk | ||
084 | |a DAT 350f |2 stub | ||
100 | 1 | |a Pierce, Benjamin C. |e Verfasser |4 aut | |
245 | 1 | 0 | |a Types and programming languages |c Benjamin C. Pierce |
264 | 1 | |a Cambridge, Mass.[u.a.] |b MIT Press |c 2002 | |
300 | |a XXI, 623 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Typus |0 (DE-588)4061323-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Formale Sprache |0 (DE-588)4017848-1 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 0 | 1 | |a Typus |0 (DE-588)4061323-9 |D s |
689 | 0 | 2 | |a Formale Sprache |0 (DE-588)4017848-1 |D s |
689 | 0 | |5 DE-604 | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-0-262-25681-0 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-0-585-44269-3 |
856 | 4 | |u http://www.cis.upenn.edu/~bcpierce/tapl/ |3 Errata | |
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=009711632&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-009711632 |
Datensatz im Suchindex
_version_ | 1804129045768568832 |
---|---|
adam_text | Contents
Preface
xiii
1
Introduction
1
1.1
Types in Computer Science
1
1.2
What Type
Systems
Are Good For
4
1.3
Type Systems
and Language
Design
1.4
Capsule
History
10
1.5
Related Reading
12
2
Mathematical Preliminaries
15
2.1
Sets, Relations, and Functions
15
2.2
Ordered Sets
16
2.3
Sequences
18
2.4
Induction
19
2.5
Background Reading
20
I Untyped Systems
21
3
Untyped Arithmetic Expressions
23
3.1
Introduction
23
3.2
Syntax
26
3.3
Induction on Terms
29
3.4
Semantic Styles
32
3.5
Evaluation
34
3.6
Notes
43
4
An ML Implementation of Arithmetic Expressions
45
4.1
Syntax
46
4.2
Evaluation
47
4.3
The Rest of the Story
49
5
The Untyped Lambda-Calculus
51
5.1
Basics
52
5.2
Programming in the Lambda-Calculus
58
5.3
Formalities
68
5.4
Notes
73
6
Nameless Representation of Terms
75
6.1
Terms and Contexts
76
6.2
Shifting and Substitution
78
6.3
Evaluation
80
7
An ML Implementation of the Lambda-Calculus
83
7.1
Terms and Contexts
83
7.2
Shifting and Substitution
85
7.3
Evaluation
87
7.4
Notes
88
II Simple Types
89
8
Typed Arithmetic Expressions
91
8.1
Types
91
8.2
The Typing Relation
92
8.3
Safety
=
Progress
+
Preservation
95
9
Simply Typed Lambda-Calculus
99
9.1
Function Types
99
9.2
The Typing Relation
100
9.3
Properties of Typing
104
9.4
The Curry-Howard Correspondence
108
9.5
Erasure and Typability
109
9.6
Curry-Style vs. Church-Style 111
9.7
Notes 111
10
An ML Implementation of Simple Types
113
10.1
Contexts
113
10.2
Terms and Types
115
10.3
Typechecking
115
11 Simple
Extensions
117
11.1
Base Types
117
11.2
The Unit Type
118
11.3
Derived Forms: Sequencing and Wildcards
119
11.4
Ascription
121
11.5
Let Bindings
124
11.6
Pairs
126
11.7
Tuples
128
11.8
Records
129
11.9
Sums
132
11.10
Variants
136
11.11
General Recursion
142
11.12
Lists
146
12
Normalization
149
12.1
Normalization for Simple Types
149
12.2
Notes
152
13
References
153
13.1
Introduction
153
13.2
Typing
159
13.3
Evaluation
159
13.4
Store Typings
162
13.5
Safety
165
13.6
Notes
170
14
Exceptions
171
14.1
Raising Exceptions
172
14.2
Handling Exceptions
173
14.3
Exceptions Carrying Values
175
III Subtyping
179
15
Subtyping
181
15.1
Subsumption
181
15.2
The Subtype Relation
182
15.3
Properties of Subtyping and Typing
188
15.4
The Top and Bottom Types
191
15.5
Subtyping and Other Features
193
15.6
Coercion Semantics for Subtyping
200
15.7
Intersection and Union Types
206
15.8
Notes
207
16
Metatheory of Subtyping
209
16.1
Algorithmic Subtyping
210
16.2
Algorithmic Typing
213
16.3
Joins and Meets
218
16.4
Algorithmic Typing and the Bottom Type
220
17
An ML Implementation of Subtyping
221
17.1
Syntax
221
17.2
Subtyping
221
17.3
Typing
222
18
Case Study: Imperative Objects
225
18.1
What Is Object-Oriented Programming?
225
18.2
Objects
228
18.3
Object Generators
229
18.4
Subtyping
229
18.5
Grouping Instance Variables
230
18.6
Simple Classes
231
18.7
Adding Instance Variables
233
18.8
Calling Superclass Methods
234
18.9
Classes with Self
234
18.10
Open Recursion through Self
235
18.11
Open Recursion and Evaluation Order
237
18.12
A More Efficient Implementation
241
18.13
Recap
244
18.14
Notes
245
19
Case Study: Featherweight Java
247
19.1
Introduction
247
19.2
Overview
249
19.3
Nominal and Structural Type Systems
251
19.4
Definitions
254
19.5
Properties
261
19.6
Encodings vs. Primitive Objects
262
19.7
Notes
263
IV
Recursive Types
265
20
Recursive Types
267
20.1
Examples
268
20.2
Formalities
275
20.3
Subtyping
279
20.4
Notes
279
21
Metatheory of Recursive Types
281
21.1
Induction and Coinduction
282
21.2
Finite and Infinite Types
284
21.3
Subtyping
286
21.4
A Digression on Transitivity
288
21.5
Membership Checking
290
21.6
More Efficient Algorithms
295
21.7
Regular Trees
298
21.8
μ
-Types
299
21.9
Counting Subexpressions
304
21.10
Digression: An Exponential Algorithm
309
21.11
Subtyping Iso-Recursive Types
311
21.12
Notes
312
V Polymorphism
315
2 2
Type Reconstruction
317
22.1
Type Variables and Substitutions
317
22.2
Two Views of Type Variables
319
22.3
Constraint-Based Typing
321
22.4
Unification
326
22.5
Principal Types
329
22.6
Implicit Type Annotations
330
22.7
Let-Polymorphism
331
22.8
Notes
336
23
Universal Types
339
23.1
Motivation
339
23.2
Varieties of Polymorphism
340
23.3
System
F
341
23.4
Examples
344
23.5
Basic Properties
353
23.6
Erasure, Typability, and Type Reconstruction
354
23.7
Erasure and Evaluation Order
357
23.8
Fragments of System
F
358
23.9
Parametricity
359
23.10
ImpredicatMty
360
23.11
Notes
361
24
Existential Types
363
24.1
Motivation
363
24.2
Data Abstraction with Existentials
368
24.3
Encoding Existentials
377
24.4
Notes
379
25
An ML Implementation of System
F
381
25.1
Nameless Representation of Types
381
25.2
Type Shifting and Substitution
382
25.3
Terms
383
25.4
Evaluation
385
25.5
Typing
386
26
Bounded Quantification
389
26.1
Motivation
389
26.2
Definitions
391
26.3
Examples
396
26.4
Safety
400
26.5
Bounded Existential Types
406
26.6
Notes
408
27
Case Study: Imperative Objects, Redux All
28
Metatheory of Bounded Quantification
417
28.1
Exposure
417
28.2
Minimal Typing
418
28.3
Subtyping in Kernel F<:
421
28.4
Subtyping in Full F<:
424
28.5
Undecidability of Full F<:
427
28.6
Joins and Meets
432
28.7
Bounded Existentials
435
28.8
Bounded Quantification and the Bottom Type
436
VI Higher-Order
Systems
437
29
Type Operators and Kinding
439
29.1
Intuitions
440
29.2
Definitions
445
30
Higher-Order Polymorphism
449
30.1
Définitions
449
30.2
Example
450
30.3
Properties
453
30.4
Fragments of F«,
461
30.5
Going Further: Dependent Types
462
31
Higher-Order Subtyping
467
31.1
Intuitions
467
31.2
Définitions
469
31.3
Properties
472
31.4
Notes
472
32
Case Study: Purely Functional Objects
475
32.1
Simple Objects
475
32.2
Subtyping
476
32.3
Bounded Quantification
477
32.4
Interface Types
479
32.5
Sending Messages to Objects
480
32.6
Simple Classes
481
32.7
Polymorphic Update
482
32.8
Adding Instance Variables
485
32.9
Classes with Self
486
32.10
Notes
488
Appendices
491
A Solutions to Selected Exercises
493
В
Notational Conventions
565
B.I Metavariable Names
565
B.2 Rule Naming Conventions
565
B.3 Naming and Subscripting Conventions
566
References
567
Index
605
|
any_adam_object | 1 |
author | Pierce, Benjamin C. |
author_facet | Pierce, Benjamin C. |
author_role | aut |
author_sort | Pierce, Benjamin C. |
author_variant | b c p bc bcp |
building | Verbundindex |
bvnumber | BV014167671 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.7 |
callnumber-search | QA76.7 |
callnumber-sort | QA 276.7 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 136 ST 140 ST 230 ST 240 |
classification_tum | DAT 350f |
ctrlnum | (OCoLC)248491285 (DE-599)BVBBV014167671 |
dewey-full | 005.13 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.13 |
dewey-search | 005.13 |
dewey-sort | 15.13 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01973nam a2200493 c 4500</leader><controlfield tag="001">BV014167671</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240220 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">020226s2002 |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0262162091</subfield><subfield code="9">0-262-16209-1</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780262162098</subfield><subfield code="9">978-0-262-16209-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)248491285</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV014167671</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-739</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-706</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.7</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 136</subfield><subfield code="0">(DE-625)143591:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 140</subfield><subfield code="0">(DE-625)143592:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</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">DAT 350f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Pierce, Benjamin C.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Types and programming languages</subfield><subfield code="c">Benjamin C. Pierce</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cambridge, Mass.[u.a.]</subfield><subfield code="b">MIT Press</subfield><subfield code="c">2002</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXI, 623 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="0" ind2="7"><subfield code="a">Typus</subfield><subfield code="0">(DE-588)4061323-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Formale Sprache</subfield><subfield code="0">(DE-588)4017848-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Typus</subfield><subfield code="0">(DE-588)4061323-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Formale Sprache</subfield><subfield code="0">(DE-588)4017848-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-0-262-25681-0</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-0-585-44269-3</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.cis.upenn.edu/~bcpierce/tapl/</subfield><subfield code="3">Errata</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=009711632&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-009711632</subfield></datafield></record></collection> |
genre | (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV014167671 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T18:58:54Z |
institution | BVB |
isbn | 0262162091 9780262162098 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-009711632 |
oclc_num | 248491285 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG DE-739 DE-824 DE-19 DE-BY-UBM DE-91G DE-BY-TUM DE-29T DE-83 DE-634 DE-11 DE-188 DE-706 |
owner_facet | DE-473 DE-BY-UBG DE-739 DE-824 DE-19 DE-BY-UBM DE-91G DE-BY-TUM DE-29T DE-83 DE-634 DE-11 DE-188 DE-706 |
physical | XXI, 623 S. |
publishDate | 2002 |
publishDateSearch | 2002 |
publishDateSort | 2002 |
publisher | MIT Press |
record_format | marc |
spelling | Pierce, Benjamin C. Verfasser aut Types and programming languages Benjamin C. Pierce Cambridge, Mass.[u.a.] MIT Press 2002 XXI, 623 S. txt rdacontent n rdamedia nc rdacarrier Typus (DE-588)4061323-9 gnd rswk-swf Softwareentwicklung (DE-588)4116522-6 gnd rswk-swf Formale Sprache (DE-588)4017848-1 gnd rswk-swf (DE-588)4123623-3 Lehrbuch gnd-content Softwareentwicklung (DE-588)4116522-6 s Typus (DE-588)4061323-9 s Formale Sprache (DE-588)4017848-1 s DE-604 Erscheint auch als Online-Ausgabe 978-0-262-25681-0 Erscheint auch als Online-Ausgabe 978-0-585-44269-3 http://www.cis.upenn.edu/~bcpierce/tapl/ Errata Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009711632&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Pierce, Benjamin C. Types and programming languages Typus (DE-588)4061323-9 gnd Softwareentwicklung (DE-588)4116522-6 gnd Formale Sprache (DE-588)4017848-1 gnd |
subject_GND | (DE-588)4061323-9 (DE-588)4116522-6 (DE-588)4017848-1 (DE-588)4123623-3 |
title | Types and programming languages |
title_auth | Types and programming languages |
title_exact_search | Types and programming languages |
title_full | Types and programming languages Benjamin C. Pierce |
title_fullStr | Types and programming languages Benjamin C. Pierce |
title_full_unstemmed | Types and programming languages Benjamin C. Pierce |
title_short | Types and programming languages |
title_sort | types and programming languages |
topic | Typus (DE-588)4061323-9 gnd Softwareentwicklung (DE-588)4116522-6 gnd Formale Sprache (DE-588)4017848-1 gnd |
topic_facet | Typus Softwareentwicklung Formale Sprache Lehrbuch |
url | http://www.cis.upenn.edu/~bcpierce/tapl/ http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009711632&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT piercebenjaminc typesandprogramminglanguages |