Programming languages: build, prove, and compare
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Cambridge
Cambridge University Press
2023
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | xxi, 775 Seiten Illustrationen |
ISBN: | 9781107180185 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV049026355 | ||
003 | DE-604 | ||
005 | 20240612 | ||
007 | t | ||
008 | 230629s2023 a||| |||| 00||| eng d | ||
020 | |a 9781107180185 |9 978-1-107-18018-5 | ||
035 | |a (OCoLC)1370404286 | ||
035 | |a (DE-599)BVBBV049026355 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-523 |a DE-83 |a DE-739 |a DE-11 | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 240 |0 (DE-625)143625: |2 rvk | ||
100 | 1 | |a Ramsey, Norman |e Verfasser |0 (DE-588)1272565661 |4 aut | |
245 | 1 | 0 | |a Programming languages |b build, prove, and compare |c Norman Ramsey, Tufts University, Massachusetts |
264 | 1 | |a Cambridge |b Cambridge University Press |c 2023 | |
300 | |a xxi, 775 Seiten |b Illustrationen | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Programmierparadigma |0 (DE-588)4308224-5 |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 | |5 DE-604 | |
689 | 1 | 0 | |a Programmierparadigma |0 (DE-588)4308224-5 |D s |
689 | 1 | |5 DE-604 | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 9781316841396 |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034289153&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
Datensatz im Suchindex
_version_ | 1805076758721986560 |
---|---|
adam_text |
Contents _ Preface Acknowledgments Credits Tables of judgment forms and important functions Symbols and notation ix xv xvii xviii xx Introduction 1 Part I. Foundations 1 An 1.1 1.2 1.3 1.4 imperative core Looking at languages The Impcore language Abstract syntax Environments and the meanings of names 1.5 Operational semantics 13 17 27 28 29 1.6 The interpreter 1.7 Operational semantics revisited: Proofs 1.8 Extending Impcore 1.9 Summary 1.10 Exercises 2 Scheme, S-expressions, and first-class functions 2.1 Overview of uScheme. 2.2 Language I: Values, syntax, and initial basis 2.3 Practice I: Recursive functions on lists of values 2.4 Records and trees (more data) 2.5 Combining theory and practice: Algebraic laws 2.6 Language II: Local variables and let 2.7 Language III: First-class functions, lambda, and locations 90 91 2.8 2.9 98 2.10 107 110 117 120 2.11 2.12 2.13 2.14 2.15 2.16 Practice III: Higher-order functions on lists Practice IV: Higher-order functions for polymorphism Practice V: Continuation-passing style Operational semantics The interpreter Extending uScheme with syntactic sugar Scheme as it really is Summary Exercises 3 Control operators and a small-step semantics: LSCHEME+ 3.1 The uScheme+ language 3.2 Procedural programming with control operators 3.3 Operational semantics: Evaluation using a stack 3.4 Operational semantics: Lowering to a core language 202 205 210 213 4 Automatic memory management 4.1 What garbage is and 258 where it comes from 4.2 Garbage-collection basics 259 4.3 The managed heap in 263 uScheme + 4.4
Mark-and-sweep collection 266 4.5 Copying collection 271 5 Interlude: 5.1 5.2 5.3 5.4 3.5 A semantics of Core uScheme— 3.6 The interpreter 3.7 Stacks, control, and semantics as they really are 3.8 Summary 3.9 Exercises Debugging a collector Mark-compact collection Reference counting Garbage collection as it really is 4.10 Summary 4.11 Exercises 4.6 4.7 4.8 4.9 66 67 72 89 127 131 136 144 152 162 168 172 176 201 215 223 239 243 248 257 280 283 283 285 287 292 301 SCHEME in ML Names and environments. Abstract syntax and values Evaluation Defining and embedding primitives 11 38 55 303 306 309 312 Notable differences between ML and C 5.6 Free and bound variables. 5.7 Summary 5.8 Exercises 5.5 314 315 317 320
6 Type systems for Impcore and ASCHEME 6.1 6.2 6.3 Typed Impcore: A statically typed imperative core A type-checking interpreter for Typed Impcore Extending Typed Impcore with arrays 329 337 6.4 6.5 6.6 343 6.7 6.8 6.9 402 7.5 327 Common type constructors Type soundness Polymorphic type systems and Typed uScheme Type systems as they really are■ Summary Exercises 7.2 7.3 7.4 Nano-ML: A nearly applicative language Abstract syntax and values of nano-ML Operational semantics Type system for nano-ML 383 383 386 401 7 ML AND TYPE INFERENCE 7.1 348 350 351 404 405 407 7.6 7.7 7.8 7.9 From typing rules to type inference The interpreter Hindley-Milner as it really is Summary Exercises 417 8.1 8.2 8.3 8.4 8.5 Case expressions and pattern matching Algebraic data types in LML Equational reasoning with case expressions Syntactic sugar: Patterns everywhere Type generativity and type equivalence 459 466 476 480 483 Abstract syntax and values. Theory and implementation of user-defined types Theory and implementation 8.8 of case expressions 8.9 Algebraic data types as they really are 8.10 Summary 8.11 Exercises 8.6 8.7 9 Molecule, abstract data types, and modules 9.1 9.2 9.3 9.4 9.5 9.6 The vocabulary of data abstraction Introduction to Molecule, part I: Writing client code Introduction, part II: Implementing an abstraction The Molecule language Molecule’s initial basis Program design: Abstractions 527 528 530 534 544 545 Key feature: Inspecting multiple representations Molecule’s type system: 9.8 Enforcing abstraction 9.9 Notes on the interpreter 9.10 Abstract data types, modules, and
overloading as they really are 9.11 Summary 9.12 Exercises 9.7 io Smalltalk and object-orientation 10.1 Object-oriented programming 610 433 441 441 443 10.2 10.3 10.4 10.5 10.6 10.7 by example Data abstraction all over again The //Smalltalk language The initial basis of Smalltalk Object-oriented programming techniques Technique I: Method dispatch replaces conditionals Technique II: Abstract classes Afterword Bibliography Key words and phrases Concept index 625 627 636 654 654 656 457 485 486 490 499 501 503 525 555 558 579 580 585 589 609 10.8 10.9 10.10 10.11 10.12 10.13 10.14 10.15 Technique III: Multiple representations. Technique IV: Invariants in object-oriented programming Operational semantics The interpreter Smalltalk as it really is Objects and classes as they really are Summary Exercises — vii Part II. Programming at scale 8 User-defined, algebraic types (and pattern matching) Contents 662 673 677 685 700 707 707 713 727 733 745 749 |
adam_txt |
Contents _ Preface Acknowledgments Credits Tables of judgment forms and important functions Symbols and notation ix xv xvii xviii xx Introduction 1 Part I. Foundations 1 An 1.1 1.2 1.3 1.4 imperative core Looking at languages The Impcore language Abstract syntax Environments and the meanings of names 1.5 Operational semantics 13 17 27 28 29 1.6 The interpreter 1.7 Operational semantics revisited: Proofs 1.8 Extending Impcore 1.9 Summary 1.10 Exercises 2 Scheme, S-expressions, and first-class functions 2.1 Overview of uScheme. 2.2 Language I: Values, syntax, and initial basis 2.3 Practice I: Recursive functions on lists of values 2.4 Records and trees (more data) 2.5 Combining theory and practice: Algebraic laws 2.6 Language II: Local variables and let 2.7 Language III: First-class functions, lambda, and locations 90 91 2.8 2.9 98 2.10 107 110 117 120 2.11 2.12 2.13 2.14 2.15 2.16 Practice III: Higher-order functions on lists Practice IV: Higher-order functions for polymorphism Practice V: Continuation-passing style Operational semantics The interpreter Extending uScheme with syntactic sugar Scheme as it really is Summary Exercises 3 Control operators and a small-step semantics: LSCHEME+ 3.1 The uScheme+ language 3.2 Procedural programming with control operators 3.3 Operational semantics: Evaluation using a stack 3.4 Operational semantics: Lowering to a core language 202 205 210 213 4 Automatic memory management 4.1 What garbage is and 258 where it comes from 4.2 Garbage-collection basics 259 4.3 The managed heap in 263 uScheme + 4.4
Mark-and-sweep collection 266 4.5 Copying collection 271 5 Interlude: 5.1 5.2 5.3 5.4 3.5 A semantics of Core uScheme— 3.6 The interpreter 3.7 Stacks, control, and semantics as they really are 3.8 Summary 3.9 Exercises Debugging a collector Mark-compact collection Reference counting Garbage collection as it really is 4.10 Summary 4.11 Exercises 4.6 4.7 4.8 4.9 66 67 72 89 127 131 136 144 152 162 168 172 176 201 215 223 239 243 248 257 280 283 283 285 287 292 301 SCHEME in ML Names and environments. Abstract syntax and values Evaluation Defining and embedding primitives 11 38 55 303 306 309 312 Notable differences between ML and C 5.6 Free and bound variables. 5.7 Summary 5.8 Exercises 5.5 314 315 317 320
6 Type systems for Impcore and ASCHEME 6.1 6.2 6.3 Typed Impcore: A statically typed imperative core A type-checking interpreter for Typed Impcore Extending Typed Impcore with arrays 329 337 6.4 6.5 6.6 343 6.7 6.8 6.9 402 7.5 327 Common type constructors Type soundness Polymorphic type systems and Typed uScheme Type systems as they really are■ Summary Exercises 7.2 7.3 7.4 Nano-ML: A nearly applicative language Abstract syntax and values of nano-ML Operational semantics Type system for nano-ML 383 383 386 401 7 ML AND TYPE INFERENCE 7.1 348 350 351 404 405 407 7.6 7.7 7.8 7.9 From typing rules to type inference The interpreter Hindley-Milner as it really is Summary Exercises 417 8.1 8.2 8.3 8.4 8.5 Case expressions and pattern matching Algebraic data types in LML Equational reasoning with case expressions Syntactic sugar: Patterns everywhere Type generativity and type equivalence 459 466 476 480 483 Abstract syntax and values. Theory and implementation of user-defined types Theory and implementation 8.8 of case expressions 8.9 Algebraic data types as they really are 8.10 Summary 8.11 Exercises 8.6 8.7 9 Molecule, abstract data types, and modules 9.1 9.2 9.3 9.4 9.5 9.6 The vocabulary of data abstraction Introduction to Molecule, part I: Writing client code Introduction, part II: Implementing an abstraction The Molecule language Molecule’s initial basis Program design: Abstractions 527 528 530 534 544 545 Key feature: Inspecting multiple representations Molecule’s type system: 9.8 Enforcing abstraction 9.9 Notes on the interpreter 9.10 Abstract data types, modules, and
overloading as they really are 9.11 Summary 9.12 Exercises 9.7 io Smalltalk and object-orientation 10.1 Object-oriented programming 610 433 441 441 443 10.2 10.3 10.4 10.5 10.6 10.7 by example Data abstraction all over again The //Smalltalk language The initial basis of Smalltalk Object-oriented programming techniques Technique I: Method dispatch replaces conditionals Technique II: Abstract classes Afterword Bibliography Key words and phrases Concept index 625 627 636 654 654 656 457 485 486 490 499 501 503 525 555 558 579 580 585 589 609 10.8 10.9 10.10 10.11 10.12 10.13 10.14 10.15 Technique III: Multiple representations. Technique IV: Invariants in object-oriented programming Operational semantics The interpreter Smalltalk as it really is Objects and classes as they really are Summary Exercises — vii Part II. Programming at scale 8 User-defined, algebraic types (and pattern matching) Contents 662 673 677 685 700 707 707 713 727 733 745 749 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Ramsey, Norman |
author_GND | (DE-588)1272565661 |
author_facet | Ramsey, Norman |
author_role | aut |
author_sort | Ramsey, Norman |
author_variant | n r nr |
building | Verbundindex |
bvnumber | BV049026355 |
classification_rvk | ST 230 ST 240 |
ctrlnum | (OCoLC)1370404286 (DE-599)BVBBV049026355 |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV049026355</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240612</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">230629s2023 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781107180185</subfield><subfield code="9">978-1-107-18018-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1370404286</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV049026355</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-523</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-11</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="100" ind1="1" ind2=" "><subfield code="a">Ramsey, Norman</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1272565661</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Programming languages</subfield><subfield code="b">build, prove, and compare</subfield><subfield code="c">Norman Ramsey, Tufts University, Massachusetts</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cambridge</subfield><subfield code="b">Cambridge University Press</subfield><subfield code="c">2023</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xxi, 775 Seiten</subfield><subfield code="b">Illustrationen</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">Programmierparadigma</subfield><subfield code="0">(DE-588)4308224-5</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=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Programmierparadigma</subfield><subfield code="0">(DE-588)4308224-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" 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">9781316841396</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</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=034289153&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield></record></collection> |
id | DE-604.BV049026355 |
illustrated | Illustrated |
index_date | 2024-07-03T22:15:13Z |
indexdate | 2024-07-20T06:02:23Z |
institution | BVB |
isbn | 9781107180185 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-034289153 |
oclc_num | 1370404286 |
open_access_boolean | |
owner | DE-523 DE-83 DE-739 DE-11 |
owner_facet | DE-523 DE-83 DE-739 DE-11 |
physical | xxi, 775 Seiten Illustrationen |
publishDate | 2023 |
publishDateSearch | 2023 |
publishDateSort | 2023 |
publisher | Cambridge University Press |
record_format | marc |
spelling | Ramsey, Norman Verfasser (DE-588)1272565661 aut Programming languages build, prove, and compare Norman Ramsey, Tufts University, Massachusetts Cambridge Cambridge University Press 2023 xxi, 775 Seiten Illustrationen txt rdacontent n rdamedia nc rdacarrier Programmierparadigma (DE-588)4308224-5 gnd rswk-swf Programmiersprache (DE-588)4047409-4 gnd rswk-swf Programmiersprache (DE-588)4047409-4 s DE-604 Programmierparadigma (DE-588)4308224-5 s Erscheint auch als Online-Ausgabe 9781316841396 Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034289153&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Ramsey, Norman Programming languages build, prove, and compare Programmierparadigma (DE-588)4308224-5 gnd Programmiersprache (DE-588)4047409-4 gnd |
subject_GND | (DE-588)4308224-5 (DE-588)4047409-4 |
title | Programming languages build, prove, and compare |
title_auth | Programming languages build, prove, and compare |
title_exact_search | Programming languages build, prove, and compare |
title_exact_search_txtP | Programming languages build, prove, and compare |
title_full | Programming languages build, prove, and compare Norman Ramsey, Tufts University, Massachusetts |
title_fullStr | Programming languages build, prove, and compare Norman Ramsey, Tufts University, Massachusetts |
title_full_unstemmed | Programming languages build, prove, and compare Norman Ramsey, Tufts University, Massachusetts |
title_short | Programming languages |
title_sort | programming languages build prove and compare |
title_sub | build, prove, and compare |
topic | Programmierparadigma (DE-588)4308224-5 gnd Programmiersprache (DE-588)4047409-4 gnd |
topic_facet | Programmierparadigma Programmiersprache |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034289153&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT ramseynorman programminglanguagesbuildproveandcompare |