Concepts and Semantics of Programming Languages 1 A Semantical Approach with OCaml and Python
This book the first of two volumes explores the syntactical constructs of the most common programming languages, and sheds a mathematical light on their semantics, while also providing an accurate presentation of the material aspects that interfere with coding. Concepts and Semantics of Programming...
Uloženo v:
| Hlavní autoři: | , , , |
|---|---|
| Médium: | E-kniha |
| Jazyk: | angličtina |
| Vydáno: |
Newark
John Wiley & Sons, Incorporated
2021
Wiley-Blackwell |
| Vydání: | 1 |
| ISBN: | 9781786305305, 1786305305 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | This book the first of two volumes explores the syntactical constructs of the most common programming languages, and sheds a mathematical light on their semantics, while also providing an accurate presentation of the material aspects that interfere with coding. Concepts and Semantics of Programming Languages 1 is dedicated to functional and imperative features. Included is the formal study of the semantics of typing and execution; their acquisition is facilitated by implementation into OCaml and Python, as well as by worked examples. Data representation is considered in detail: endianness, pointers, memory management, union types and pattern-matching, etc., with examples in OCaml, C and C++. The second volume introduces a specific model for studying modular and object features and uses this model to present Ada and OCaml modules, and subsequently Java, C++, OCaml and Python classes and objects. This book is intended not only for computer science students and teachers but also seasoned programmers, who will find a guide to reading reference manuals and the foundations of program verification. |
|---|---|
| AbstractList | This book the first of two volumes explores the syntactical constructs of the most common programming languages, and sheds a mathematical light on their semantics, while also providing an accurate presentation of the material aspects that interfere with coding. Concepts and Semantics of Programming Languages 1 is dedicated to functional and imperative features. Included is the formal study of the semantics of typing and execution; their acquisition is facilitated by implementation into OCaml and Python, as well as by worked examples. Data representation is considered in detail: endianness, pointers, memory management, union types and pattern-matching, etc., with examples in OCaml, C and C++. The second volume introduces a specific model for studying modular and object features and uses this model to present Ada and OCaml modules, and subsequently Java, C++, OCaml and Python classes and objects. This book is intended not only for computer science students and teachers but also seasoned programmers, who will find a guide to reading reference manuals and the foundations of program verification. |
| Author | Jaume, Mathieu Hardin, Therese Pessaux, Francois Viguie Donzeau-Gouge, Veronique |
| Author_xml | – sequence: 1 fullname: Hardin, Therese – sequence: 2 fullname: Jaume, Mathieu – sequence: 3 fullname: Pessaux, Francois – sequence: 4 fullname: Viguie Donzeau-Gouge, Veronique |
| BookMark | eNpVj0tLAzEUhSM-0NYu3c9OXFRvXjfJUof6gIKC4nbITJKxdprUyVT_vsUKIhw4fPBx4IzIQUzRE3JG4ZICsCujNKXUaCYoo3tk8scgcH_HSiMHuc0RGVEmAZRiTB-TSc7vAMABcOucEFqm2Pj1kAsbXfHsVzYOiyYXKRRPfWp7u1otYlvMbWw3tvW5oKfkMNgu-8lvj8nr7eylvJ_OH-8eyuv51FIpjJpy66BRgjWcQfA2GCnACvSNFVqiR43OBUSOWIsajda1kyFQI8B4x5TjY3KxG7Z56b_yW-qGXH12vk5pmat_p7fu-c5d9-lj4_NQ_WiNj0Nvu2p2U6JUhiHn3xEWWgE |
| ContentType | eBook |
| DEWEY | 005.13 |
| DOI | 10.1002/9781119824121 |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9781119824046 1119824044 |
| Edition | 1 1st edition |
| ExternalDocumentID | 9781119824046 EBC6579263 |
| GroupedDBID | 38. AABBV AALIM ABARN ABHAM ABQPQ ADVEM AERYV AFOJC AHWGJ AJFER ALMA_UNASSIGNED_HOLDINGS BBABE CZZ GEOUK IHRAH OHILO OODEK WIIVT WZT |
| ID | FETCH-LOGICAL-a15497-3ad0c742c320feaf9540a46eca4856e686ddf66366b4b6988bd5ff19409ed27d3 |
| ISBN | 9781786305305 1786305305 |
| IngestDate | Fri Jun 27 09:50:35 EDT 2025 Wed Nov 26 07:09:05 EST 2025 |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a15497-3ad0c742c320feaf9540a46eca4856e686ddf66366b4b6988bd5ff19409ed27d3 |
| OCLC | 1250077228 |
| PQID | EBC6579263 |
| PageCount | 329 |
| ParticipantIDs | askewsholts_vlebooks_9781119824046 proquest_ebookcentral_EBC6579263 |
| PublicationCentury | 2000 |
| PublicationDate | 2021 2021-04-13 |
| PublicationDateYYYYMMDD | 2021-01-01 2021-04-13 |
| PublicationDate_xml | – year: 2021 text: 2021 |
| PublicationDecade | 2020 |
| PublicationPlace | Newark |
| PublicationPlace_xml | – name: Newark |
| PublicationYear | 2021 |
| Publisher | John Wiley & Sons, Incorporated Wiley-Blackwell |
| Publisher_xml | – name: John Wiley & Sons, Incorporated – name: Wiley-Blackwell |
| SSID | ssj0003006178 ssib044298277 |
| Score | 2.2586434 |
| Snippet | This book the first of two volumes explores the syntactical constructs of the most common programming languages, and sheds a mathematical light on their... |
| SourceID | askewsholts proquest |
| SourceType | Aggregation Database Publisher |
| Subtitle | A Semantical Approach with OCaml and Python |
| TableOfContents | 6.5. Generalized conditional -- 6.5.1. C style switch/case -- 6.5.2. Pattern matching -- 6.6. Equality -- 6.6.1. Physical equality -- 6.6.2. Structural equality -- 6.6.3. Equality between functions -- 7 Pointers and Memory Management -- 7.1. Addresses and pointers -- 7.2. Endianness -- 7.3. Pointers and arrays -- 7.4. Passing parameters by address -- 7.5. References -- 7.5.1. References in C++ -- 7.5.2. References in Java -- 7.6. Memory management -- 7.6.1. Memory allocation -- 7.6.2. Freeing memory -- 7.6.3. Automatic memory management -- 8 Exceptions -- 8.1. Errors: notification and propagation -- 8.1.1. Global variable -- 8.1.2. Record definition -- 8.1.3. Passing by address -- 8.1.4. Introducing exceptions -- 8.2. A simple formalization: ML-style exceptions -- 8.2.1. Abstract syntax -- 8.2.2. Values -- 8.2.3. Type algebra -- 8.2.4. Operational semantics -- 8.2.5. Typing -- 8.3. Exceptions in other languages -- 8.3.1. Exceptions in OCaml -- 8.3.2. Exceptions in Python -- 8.3.3. Exceptions in Java -- 8.3.4. Exceptions in C++ -- Conclusion -- Solutions to the Exercises -- A.1. Introduction to language semantics Solution to exercise 2.1 -- Solution to exercise 2.2 -- A.2. Semantics of functional features Solution to exercise 3.1 -- Solution to exercise 3.2 -- Solution to exercise 3.3 -- Solution to exercise 3.4 -- Solution to exercise 3.5 -- Solution to exercise 3.6 -- Solution to exercise 3.7 -- A.3. Semantics of imperative features Solution to exercise 4.1 -- Solution to exercise 4.2 -- Solution to exercise 4.3 -- List of Notations -- Index of Programs -- References -- Index -- Other titles from iSTE in Computer Engineering -- EULA Cover -- Half-Title Page -- Title Page -- Copyright Page -- Contents -- Foreword -- Preface -- 1 From Hardware to Software -- 1.1. Computers: a low-level view -- 1.1.1. Information processing -- 1.1.2. Memories -- 1.1.3. CPUs -- 1.1.4. Peripheral devices -- 1.2. Computers: a high-level view -- 1.2.1. Modeling computations -- 1.2.2. High-level languages -- 1.2.3. From source code to executable programs -- 2 Introduction to Semantics of Programming Languages -- 2.1. Environment, memory and state -- 2.1.1. Evaluation environment -- 2.1.2. Memory -- 2.1.3. State -- 2.2. Evaluation of expressions -- 2.2.1. Syntax -- 2.2.2. Values -- 2.2.3. Evaluation semantics -- 2.3. Definition and assignment -- 2.3.1. Defining an identifier -- 2.3.2. Assignment -- 2.4. Exercises -- Exercise 2.1 -- Exercise 2.2 -- 3 Semantics of Functional Features -- 3.1. Syntactic aspects -- 3.1.1. Syntax of a functional kernel -- 3.1.2. Abstract syntax tree -- 3.1.3. Reasoning by induction over expressions -- 3.1.4. Declaration of variables, bound and free variables -- 3.2. Execution semantics: evaluation functions -- 3.2.1. Evaluation errors -- 3.2.2. Values -- 3.2.3. Interpretation of operators -- 3.2.4. Closures -- 3.2.5. Evaluation of expressions -- 3.3. Execution semantics: operational semantics -- 3.3.1. Simple expressions -- 3.3.2. Call-by-value -- 3.3.3. Recursive and mutually recursive functions -- 3.3.4. Call-by-name -- 3.3.5. Call-by-value versus call-by-name -- 3.4. Evaluation functions versus evaluation relations -- 3.4.1. Status of the evaluation function -- 3.4.2. Induction over evaluation trees -- 3.5. Semantic properties -- 3.5.1. Equivalent expressions -- 3.5.2. Equivalent environments -- 3.6. Exercises -- Exercise 3.1 -- Exercise 3.2 -- Exercise 3.3 -- Exercise 3.4 -- Exercise 3.5 -- Exercise 3.6 -- Exercise 3.7 -- 4 Semantics of Imperative Features 4.1. Syntax of a kernel of an imperative language -- 4.2. Evaluation of expressions -- 4.3. Evaluation of definitions -- 4.4. Operational semantics -- 4.4.1. Big-step semantics -- 4.4.2. Small-step semantics -- 4.4.3. Expressiveness of operational semantics -- 4.5. Semantic properties -- 4.5.1. Equivalent programs -- 4.5.2. Program termination -- 4.5.3. Determinism of program execution -- 4.5.4. Big steps versus small steps -- 4.6. Procedures -- 4.6.1. Blocks -- 4.6.2. Procedures -- 4.7. Other approaches -- 4.7.1. Denotational semantics -- 4.7.2. Axiomatic semantics, Hoare logic -- 4.8. Exercises -- Exercise 4.1 -- Exercise 4.2 -- Exercise 4.3 -- 5 Types -- 5.1. Type checking: when and how? -- 5.1.1. When to verify types? -- 5.1.2. How to verify types? -- 5.2. Informal typing of a program Exp2 -- 5.2.1. A first example -- 5.2.2. Typing a conditional expression -- 5.2.3. Typing without type constraints -- 5.2.4. Polymorphism -- 5.3. Typing rules in Exp2 -- 5.3.1. Types, type schemes and typing environments -- 5.3.2. Generalization, substitution and instantiation -- 5.3.3. Typing rules and typing trees -- 5.4. Type inference algorithm in Exp2 -- 5.4.1. Principal type -- 5.4.2. Sets of constraints and unification -- 5.4.3. Type inference algorithm -- 5.5. Properties -- 5.5.1. Properties of typechecking -- 5.5.2. Properties of the inference algorithm -- 5.6. Typechecking of imperative constructs -- 5.6.1. Type algebra -- 5.6.2. Typing rules -- 5.6.3. Typing polymorphic definitions -- 5.7. Subtyping and overloading -- 5.7.1. Subtyping -- 5.7.2. Overloading -- 6 Data Types -- 6.1. Basic types -- 6.1.1. Booleans -- 6.1.2. Integers -- 6.1.3. Characters -- 6.1.4. Floating point numbers -- 6.2. Arrays -- 6.3. Strings -- 6.4. Type definitions -- 6.4.1. Type abbreviations -- 6.4.2. Records -- 6.4.3. Enumerated types -- 6.4.4. Sum types |
| Title | Concepts and Semantics of Programming Languages 1 |
| URI | https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=6579263 https://www.vlebooks.com/vleweb/product/openreader?id=none&isbn=9781119824046 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Nb9QwELVoy4Fe-BblSxbitopIsontcIPVUgRSuxJl1RMrJ7bbAJtFTVIt_HpmbCfZbTnAgUvkOJZleZ7ssTPvDSEvBZIXAQhBYQoeJDwPA5mGKijg6CwTJZVmxiab4EdH4vQ0m_mr7NqmE-BVJdbr7Md_NTXUgbGROvsP5u47hQoog9HhCWaH5xWPuH_1QgOOgehElz_pJcwZSjBjkJsLwlpaRpO_oKxHkWOldy3RVl5gHNaK5nx0PJFLJyQw-4kKA0MMiUbOEvJ_lFMgcKXhcrs5L3U7-iBbl4LdFnqgYCaPVVmPZjb5ytoFCdti12SuUbAXdWXn5VlbavDyq19atsEhePsuMvcP9Zv3F3GEv2Ic_XRYJYP-tnLreBtxwWA9Glti9vXF3onHYrsoygS4Io5rfUU_e_geJmyH7HAGZ_S9w-nx54_dwpPApixiT8j9ao-J6NkJJAL2Q_D6YP27F2yFQbzaGsI-2Zf1N9ihYPdq6mtbvPVbTu6QPY1klrvkhq7ukdtdCg_qV_T75EsHGgp2pj1o6MrQDdDQHjQ0ek3f0AEytIMMRchQCxnblYPMAzJ_Nz2ZvA98yo1AolYf7DdShQVP4mIch0ZLk4FHLxOmUfw-ZZoJppQBL5WxPMlZJkSuUmOiLAkzrWKuxg_JbrWq9CNCC5YLzF8AJ26V8IJJ-09ZxJFhOs0LdUBebEzU4vK7DQ-oF1sGOyC0m7-F_e5jlhfTtxOW8ixm48d_088TcmsA31Oy21y0-hm5WVw2ZX3x3OPhN3tCc-U |
| linkProvider | ProQuest Ebooks |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.title=Concepts+and+Semantics+of+Programming+Languages+1%3A+A+Semantical+Approach+With+OCaml+and+Python&rft.au=Therese+Hardin%2C+Hardin&rft.au=Mathieu+Jaume%2C+Jaume&rft.au=Francois+Pessaux%2C+Pessaux&rft.au=Veronique+Viguie+Donzeau-Gouge%2C+Viguie+Donzeau-Gouge&rft.date=2021-04-13&rft.pub=Wiley-Blackwell&rft.isbn=9781786305305&rft_id=info:doi/10.1002%2F9781119824121&rft.externalDocID=9781119824046 |
| thumbnail_m | http://cvtisr.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fvle.dmmserver.com%2Fmedia%2F640%2F97811198%2F9781119824046.jpg |

