Foundations for programming languages:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Cambridge, Mass. [u.a.]
MIT Press
2000
|
Ausgabe: | 3. print. |
Schriftenreihe: | Foundations of computing
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XIX, 846 S. graph. Darst. |
ISBN: | 0262133210 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV014284144 | ||
003 | DE-604 | ||
005 | 20031027 | ||
007 | t | ||
008 | 020506s2000 d||| |||| 00||| eng d | ||
020 | |a 0262133210 |9 0-262-13321-0 | ||
035 | |a (OCoLC)248217944 | ||
035 | |a (DE-599)BVBBV014284144 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-29T | ||
082 | 0 | |a 005.13 | |
084 | |a ST 240 |0 (DE-625)143625: |2 rvk | ||
100 | 1 | |a Mitchell, John C. |e Verfasser |4 aut | |
245 | 1 | 0 | |a Foundations for programming languages |c John C. Mitchell |
250 | |a 3. print. | ||
264 | 1 | |a Cambridge, Mass. [u.a.] |b MIT Press |c 2000 | |
300 | |a XIX, 846 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Foundations of computing | |
600 | 1 | 7 | |a Duval, André |d 1929-1998 |0 (DE-588)106194682 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Typisierter Lambda-Kalkül |0 (DE-588)4270792-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmiersprache |0 (DE-588)4047409-4 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Programmiersprache |0 (DE-588)4047409-4 |D s |
689 | 0 | 1 | |a Typisierter Lambda-Kalkül |0 (DE-588)4270792-4 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Duval, André |d 1929-1998 |0 (DE-588)106194682 |D p |
689 | 1 | |8 1\p |5 DE-604 | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009795941&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-009795941 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804129175723835392 |
---|---|
adam_text | Titel: Foundations for programming languages
Autor: Mitchell, John C
Jahr: 2000
Contents
Series Foreword xiii
Preface xv
1 Introduction 1
1.1 Model Programming Languages 1
1.2 Lambda Notation 3
1.3 Equations, Reduction, and Semantics 5
1.3.1 Axiomatic Semantics 6
1.3.2 Operational Semantics 7
1.3.3 Denotational Semantics 8
1.4 Types and Type Systems 9
1.5 Notation and Mathematical Conventions 11
1.6 Set-theoretic Background 13
1.6.1 Fundamentals 13
1.6.2 Relations and Functions 17
1.7 Syntax and Semantics 21
1.7.1 Object Language and Meta-language 21
1.7.2 Grammars 21
1.7.3 Lexical Analysis and Parsing 23
1.7.4 Example Mathematical Interpretation 25
1.8 Induction 27
1.8.1 Induction on the Natural Numbers 27
1.8.2 Induction on Expressions and Proofs 32
1.8.3 Well-founded Induction 38
2 The Language PCF 45
2.1 Introduction 45
2.2 Syntax of PCF 46
2.2.1 Overview 46
2.2.2 Booleans and Natural Numbers 47
2.2.3 Pairing and Functions 51
2.2.4 Declarations and Syntactic Sugar 57
2.2.5 Recursion and Fixed-point Operators 60
2.2.6 PCF Syntax Summary and Collected Examples 65
Contents
2.3 PCF Programs and Their Semantics 67
2.3.1 Programs and Results 67
2.3.2 Axiomatic Semantics 69
2.3.3 Denotational Semantics 73
2.3.4 Operational Semantics 75
2.3.5 Equivalence Relations Defined by Each Form of Semantics 76
2.4 PCF Reduction and Symbolic Interpreters 79
2.4.1 Nondeterministic Reduction 79
2.4.2 Reduction Strategies 84
2.4.3 The Left-most and Lazy Reduction Strategies 86
2.4.4 Parallel Reduction 91
2.4.5 Eager PCF 92
2.5 PCF Programming Examples, Expressive Power and Limitations 96
2.5.1 Records and n-tuples 96
2.5.2 Searching the Natural Numbers 98
2.5.3 Iteration and Tail Recursion 101
2.5.4 Total Recursive Functions 105
2.5.5 Partial Recursive Functions 109
2.5.6 Nondefinability of Parallel Operations 113
2.6 Variations and Extensions of PCF 122
2.6.1 Summary of Extensions 122
2.6.2 Unit and Sum Types 122
2.6.3 Recursive Types 126
2.6.4 Lifted Types 132
3 Universal Algebra and Algebraic Data Types 145
3.1 Introduction 145
3.2 Preview of Algebraic Specification 146
3.3 Algebras, Signatures and Terms 148
3.3.1 Algebras 148
3.3.2 Syntax of Algebraic Terms 149
3.3.3 Algebras and the Interpretation of Terms 151
3.3.4 The Substitution Lemma 156
3.4 Equations, Soundness and Completeness 157
3.4.1 Equations 157
3.4.2 Term Algebras and Substitution 159
Contents
3.4.3 Semantic Implication and an Equational Proof System 161
3.4.4 Forms of Completeness 171
3.4.5 Congruence, Quotients and Deductive Completeness 173
3.4.6 Nonempty Sorts and the Least Model Property 177
3.5 Homomorphisms and Initiality 179
3.5.1 Homomorphisms and Isomorphisms 179
3.5.2 Initial Algebras 181
3.6 Algebraic Data Types 188
3.6.1 Specification and Data Abstraction 188
3.6.2 Initial Algebra Semantics and Datatype Induction 191
3.6.3 Examples and Error Values 196
3.6.4 Alternative Approaches to Error Values 202
3.7 Rewrite Systems 203
3.7.1 Basic Definitions 203
3.7.2 Confluence and Provable Equality 207
3.7.3 Termination 210
3.7.4 Critical Pairs 216
3.7.5 Left-linear Non-overlapping Rewrite Systems 222
3.7.6 Local Confluence, Termination and Completion 227
3.7.7 Applications to Algebraic Datatypes 230
4 Simply-typed Lambda Calculus 235
4.1 Introduction 235
4.2 Types 237
4.2.1 Syntax 237
4.2.2 Interpretation of Types 237
4.3 Terms 239
4.3.1 Context-sensitive Syntax 239
4.3.2 Syntax of A^ Terms 241
4.3.3 Terms with Product, Sum and Related Types 248
4.3.4 Formulas-as-types Correspondence 250
4.3.5 Typing Algorithm 255
4.4 Proof Systems 257
4.4.1 Equations and Theories 257
4.4.2 Reduction Rules 267
4.4.3 Reduction with Additional Rules 271
4.4.4 Proof-theoretic Methods for Consistency and Conservativity 273
Contents
4.5 Henkin Models, Soundness and Completeness 279
4.5.1 General Models and the Meanings of Terms 279
4.5.2 Applicative Structures, Extensionality and Frames 280
4.5.3 Environment Model Condition 283
4.5.4 Type and Equational Soundness 288
4.5.5 Completeness for Henkin Models Without Empty Types 293
4.5.6 Completeness with Empty Types 295
4.5.7 Combinators and the Combinatory Model Condition 297
4.5.8 Combinatory and Lambda Algebras 300
4.5.9 Henkin Models for Other Types 301
5 Models of Typed Lambda Calculus 305
5.1 Introduction 305
5.2 Domain-theoretic Models and Fixed Points 306
5.2.1 Recursive Definitions and Fixed Point Operators 306
5.2.2 Complete Partial Orders, Lifting and Cartesian Products 308
5.2.3 Continuous Functions 312
5.2.4 Fixed Points and the Full Continuous Hierarchy 318
5.2.5 CPO Model for PCF 327
5.3 Fixed-point Induction 333
5.4 Computational Adequacy and Full Abstraction 339
5.4.1 Approximation Theorem and Computational Adequacy 339
5.4.2 Full Abstraction for PCF with Parallel Operations 345
5.5 Recursion-theoretic Models 354
5.5.1 Introduction 354
5.5.2 Modest Sets 357
5.5.3 Full Recursive Hierarchy 360
5.6 Partial Equivalence Relations and Recursion 364
5.6.1 Partial Equivalence Relation Interpretation of Types 364
5.6.2 Generalization to Partial Combinatory Algebras 368
5.6.3 Lifting, Partial Functions and Recursion 373
5.6.4 Recursion and the Intrinsic Order 375
5.6.5 Lifting, Products and Function Spaces of Effective CPOs 382
6 Imperative Programs 387
6.1 Introduction 337
Contents
6.2 While Programs 389
6.2.1 L-values and R-values 389
6.2.2 Syntax of While Programs 390
6.3 Operational Semantics 392
6.3.1 Basic Symbols in Expressions 392
6.3.2 Locations and Stores 392
6.3.3 Evaluation of Expressions 394
6.3.4 Execution of Commands 395
6.4 Denotational Semantics 401
6.4.1 Typed Lambda Calculus with Stores 401
6.4.2 Semantic Functions 405
6.4.3 Equivalence of Operational and Denotational Semantics 410
6.5 Before-after Assertions about While Programs 412
6.5.1 First-order and Partial Correctness Assertions 412
6.5.2 Proof Rules 415
6.5.3 Soundness 421
6.5.4 Relative Completeness 423
6.6 Semantics of Additional Program Constructs 429
6.6.1 Overview 429
6.6.2 Blocks with Local Variables 429
6.6.3 Procedures 438
6.6.4 Combining Blocks and Procedure Declarations 440
7 Categories and Recursive Types 445
7.1 Introduction 445
7.2 Cartesian Closed Categories 446
7.2.1 Category Theory and Typed Languages 446
7.2.2 Categories, Functors and Natural Transformations 446
7.2.3 Definition of Cartesian Closed Category 458
7.2.4 Soundness and the Interpretation of Terms 468
7.2.5 Henkin Models as CCCs 484
7.2.6 Categorical Characterization of Meaning Function 487
7.3 Kripke Lambda Models and Functor Categories 490
7.3.1 Overview 490
7.3.2 Possible Worlds 491
7.3.3 Applicative Structures 491
Contents
7.3.4 Extensionality, Combinators and Functor Categories 493
7.3.5 Environments and Meanings of Terms 497
7.3.6 Soundness and Completeness 499
7.3.7 Kripke Lambda Models as Cartesian Closed Categories 501
7.4 Domain Models of Recursive Types 505
7.4.1 A Motivating Example 505
7.4.2 Diagrams, Cones and Limits 509
7.4.3 F-algebras 512
7.4.4 w-Chains and Initial F-algebras 514
7.4.5 O-categories and Embeddings 518
7.4.6 Colimits and O-colimits 521
7.4.7 Locally Continuous Functors 526
7.4.8 Examples of the General Method 528
8 Logical Relations 535
8.1 Introduction to Logical Relations 535
8.2 Logical Relations over Applicative Structures 536
8.2.1 Definition of Logical Relation 536
8.2.2 The Basic Lemma 538
8.2.3 Partial Functions and Theories of Models 544
8.2.4 Logical Partial Equivalence Relations 545
8.2.5 Quotients and Extensionality 546
8.3 Proof-Theoretic Results 550
8.3.1 Completeness for Henkin Models 550
8.3.2 Normalization 553
8.3.3 Confluence and Other Reduction Properties 556
8.3.4 Reduction with Fix and Additional Operations 562
8.4 Partial Surjections and Specific Models 573
8.4.1 Partial Surjections and the Full Classical Hierarchy 574
8.4.2 Full Recursive Hierarchy 576
8.4.3 Full Continuous Hierarchy 578
8.5 Representation Independence 580
8.5.1 Motivation 580
8.5.2 Example Language 581
8.5.3 General Representation Independence 585
Contents
8.6 Generalizations of Logical Relations 586
8.6.1 Introduction 586
8.6.2 Motivating Examples: Complete Partial Orders and Kripke Models 588
8.6.3 Sconing and Relations 595
8.6.4 Comparison with Logical Relations 600
8.6.5 General Case and Applications to Specific Categories 603
9 Polymorphism and Modularity 607
9.1 Introduction 607
9.1.1 Overview 607
9.1.2 Types as Function Arguments 608
9.1.3 General Products and Sums 613
9.1.4 Types as Specifications 614
9.2 Predicative Polymorphic Calculus 617
9.2.1 Syntax of Types and Terms 617
9.2.2 Comparison with Other Forms of Polymorphism 624
9.2.3 Equational Proof System and Reduction 628
9.2.4 Models of Predicative Polymorphism 630
9.2.5 ML-style Polymorphic Declarations 635
9.3 Impredicative Polymorphism 639
9.3.1 Introduction 639
9.3.2 Expressiveness and Properties of Theories 640
9.3.3 Termination of Reduction 657
9.3.4 Summary of Semantic Models 663
9.3.5 Models Based on Universal Domains 665
9.3.6 Partial Equivalence Relation Models 670
9.4 Data Abstraction and Existential Types 679
9.5 General Products, Sums and Program Modules 685
9.5.1 The ML Module Language 685
9.5.2 Predicative Calculus with Products and Sums 692
9.5.3 Representing Modules with Products and Sums 697
9.5.4 Predicativity and the Relationship between Universes 698
10 Subtyping and Related Concepts 703
10.1 Introduction 703
10.2 Simply Typed Lambda Calculus with Subtyping 706
Contents
10.3 Records 713
10.3.1 General Properties of Record Subtyping 713
10.3.2 Typed Calculus with Records and Subtyping 714
10.4 Semantic Models of Subtyping 718
10.4.1 Overview 718
10.4.2 Conversion Interpretation of Subtyping 718
10.4.3 Subset Interpretation of Types 727
10.4.4 Partial Equivalence Relations as Types 734
10.5 Recursive Types and a Record Model of Objects 739
10.6 Polymorphism with Subtype Constraints 750
11 Type Inference 765
11.1 Introduction to Type Inference 765
11.2 Type Inference for k~~* with Type Variables 769
11.2.1 The Language kj* 769
11.2.2 Substitution, Instances and Unification 771
11.2.3 An Algorithm for Principal Curry Typings 777
11.2.4 Implicit Typing 782
11.2.5 Equivalence of Typing and Unification 784
11.3 Type Inference with Polymorphic Declarations 790
11.3.1 ML Type Inference and Polymorphic Variables 790
11.3.2 Two Sets of Implicit Typing Rules 791
11.3.3 Type Inference Algorithms 795
11.3.4 Equivalence of ML] and ML2 802
11.3.5 Complexity of ML Type Inference 805
Bibliography 817
Index 837
|
any_adam_object | 1 |
author | Mitchell, John C. |
author_facet | Mitchell, John C. |
author_role | aut |
author_sort | Mitchell, John C. |
author_variant | j c m jc jcm |
building | Verbundindex |
bvnumber | BV014284144 |
classification_rvk | ST 240 |
ctrlnum | (OCoLC)248217944 (DE-599)BVBBV014284144 |
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 |
edition | 3. print. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01646nam a2200421 c 4500</leader><controlfield tag="001">BV014284144</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20031027 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">020506s2000 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0262133210</subfield><subfield code="9">0-262-13321-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)248217944</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV014284144</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-29T</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13</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="100" ind1="1" ind2=" "><subfield code="a">Mitchell, John C.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Foundations for programming languages</subfield><subfield code="c">John C. Mitchell</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. print.</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">2000</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XIX, 846 S.</subfield><subfield code="b">graph. Darst.</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="490" ind1="0" ind2=" "><subfield code="a">Foundations of computing</subfield></datafield><datafield tag="600" ind1="1" ind2="7"><subfield code="a">Duval, André</subfield><subfield code="d">1929-1998</subfield><subfield code="0">(DE-588)106194682</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Typisierter Lambda-Kalkül</subfield><subfield code="0">(DE-588)4270792-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmiersprache</subfield><subfield code="0">(DE-588)4047409-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Programmiersprache</subfield><subfield code="0">(DE-588)4047409-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Typisierter Lambda-Kalkül</subfield><subfield code="0">(DE-588)4270792-4</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">Duval, André</subfield><subfield code="d">1929-1998</subfield><subfield code="0">(DE-588)106194682</subfield><subfield code="D">p</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</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=009795941&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-009795941</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></record></collection> |
id | DE-604.BV014284144 |
illustrated | Illustrated |
indexdate | 2024-07-09T19:00:58Z |
institution | BVB |
isbn | 0262133210 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-009795941 |
oclc_num | 248217944 |
open_access_boolean | |
owner | DE-29T |
owner_facet | DE-29T |
physical | XIX, 846 S. graph. Darst. |
publishDate | 2000 |
publishDateSearch | 2000 |
publishDateSort | 2000 |
publisher | MIT Press |
record_format | marc |
series2 | Foundations of computing |
spelling | Mitchell, John C. Verfasser aut Foundations for programming languages John C. Mitchell 3. print. Cambridge, Mass. [u.a.] MIT Press 2000 XIX, 846 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Foundations of computing Duval, André 1929-1998 (DE-588)106194682 gnd rswk-swf Typisierter Lambda-Kalkül (DE-588)4270792-4 gnd rswk-swf Programmiersprache (DE-588)4047409-4 gnd rswk-swf Programmiersprache (DE-588)4047409-4 s Typisierter Lambda-Kalkül (DE-588)4270792-4 s DE-604 Duval, André 1929-1998 (DE-588)106194682 p 1\p DE-604 HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009795941&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 |
spellingShingle | Mitchell, John C. Foundations for programming languages Duval, André 1929-1998 (DE-588)106194682 gnd Typisierter Lambda-Kalkül (DE-588)4270792-4 gnd Programmiersprache (DE-588)4047409-4 gnd |
subject_GND | (DE-588)106194682 (DE-588)4270792-4 (DE-588)4047409-4 |
title | Foundations for programming languages |
title_auth | Foundations for programming languages |
title_exact_search | Foundations for programming languages |
title_full | Foundations for programming languages John C. Mitchell |
title_fullStr | Foundations for programming languages John C. Mitchell |
title_full_unstemmed | Foundations for programming languages John C. Mitchell |
title_short | Foundations for programming languages |
title_sort | foundations for programming languages |
topic | Duval, André 1929-1998 (DE-588)106194682 gnd Typisierter Lambda-Kalkül (DE-588)4270792-4 gnd Programmiersprache (DE-588)4047409-4 gnd |
topic_facet | Duval, André 1929-1998 Typisierter Lambda-Kalkül Programmiersprache |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009795941&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT mitchelljohnc foundationsforprogramminglanguages |