{"product_id":"concepts-and-semantics-of-programming-languages-2-modular-and-object-oriented-constructs-with-ocaml-python-c-ada-and-java-hardback-9781786306029","title":"Concepts and Semantics of Programming Languages 2; Modular and Object-oriented Constructs with OCaml, Python, C++, Ada and Java (Hardback) 9781786306029","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eConcepts and Semantics of Programming Languages 2\u003c\/font\u003e\u003cbr\u003e\r\n\u003cfont size=\"5\"\u003eModular and Object-oriented Constructs with OCaml, Python, C++, Ada and Java\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\u003cp\u003e\u003cfont size=\"4\"\u003eTherese Hardin (Author), Mathieu Jaume (Author), François Pessaux (Author), Veronique Viguie Donzeau-Gouge (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781786306029, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eHardback, published 19 November 2021\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e272 pages\u003cbr\u003e1 x 1 x 1 cm, 0.454 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003eThis book – composed of two volumes – explores the syntactical constructs of the most common programming languages, and sheds a mathematical light on their semantics, providing also an accurate presentation of the material aspects that interfere with coding.\u003cbr\u003e\u003cbr\u003e\u003ci\u003eConcepts and Semantics of Programming Languages 2\u003c\/i\u003e presents an original semantic model, collectively taking into account all of the constructs and operations of modules and classes: visibility, import, export, delayed definitions, parameterization by types and values, extensions, etc. The model serves for the study of Ada and OCaml modules, as well as C header files. It can be deployed to model object and class features, and is thus used to describe Java, C++, OCaml and Python classes.\u003cbr\u003e\u003cbr\u003eThis 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.\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003eForeword ix\u003c\/p\u003e \u003cp\u003ePreface xi\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1. Namespaces: Model and Operations \u003c\/b\u003e\u003cb\u003e1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1. Reusing, dividing, confining 2\u003c\/p\u003e \u003cp\u003e1.1.1. Analysis of some developer needs 2\u003c\/p\u003e \u003cp\u003e1.1.2. Meeting developer needs 3\u003c\/p\u003e \u003cp\u003e1.2. Namespaces 5\u003c\/p\u003e \u003cp\u003e1.2.1. Namespaces definition 6\u003c\/p\u003e \u003cp\u003e1.2.2. Extending notions of environment and binding 8\u003c\/p\u003e \u003cp\u003e1.3. \u003ci\u003ekit \u003c\/i\u003edevelopment 12\u003c\/p\u003e \u003cp\u003e1.3.1. Namespace of a \u003ci\u003ekit \u003c\/i\u003e14\u003c\/p\u003e \u003cp\u003e1.3.2. Order of fields introduction 15\u003c\/p\u003e \u003cp\u003e1.3.3. Typing \u003ci\u003ekits \u003c\/i\u003e15\u003c\/p\u003e \u003cp\u003e1.3.4. \u003ci\u003ekit \u003c\/i\u003evalues 18\u003c\/p\u003e \u003cp\u003e1.3.5. \u003ci\u003ekit \u003c\/i\u003eexport, confining fields 22\u003c\/p\u003e \u003cp\u003e1.3.6. \u003ci\u003ekits \u003c\/i\u003eimport 28\u003c\/p\u003e \u003cp\u003e1.3.7. Stages of \u003ci\u003ekit \u003c\/i\u003edevelopment 32\u003c\/p\u003e \u003cp\u003e1.4. Incomplete \u003ci\u003ekits \u003c\/i\u003e33\u003c\/p\u003e \u003cp\u003e1.4.1. Type and value of an incomplete \u003ci\u003ekit \u003c\/i\u003e34\u003c\/p\u003e \u003cp\u003e1.4.2. Completion of an incomplete \u003ci\u003ekit \u003c\/i\u003e34\u003c\/p\u003e \u003cp\u003e1.4.3. Confining an incomplete \u003ci\u003ekit \u003c\/i\u003e36\u003c\/p\u003e \u003cp\u003e1.5. Parameterized \u003ci\u003ekits \u003c\/i\u003e36\u003c\/p\u003e \u003cp\u003e1.5.1. \u003ci\u003ekits \u003c\/i\u003eparameterized by a type 36\u003c\/p\u003e \u003cp\u003e1.5.2. \u003ci\u003ekits \u003c\/i\u003eparameterized by types and values 41\u003c\/p\u003e \u003cp\u003e1.5.3. Confinement, parametrization, incomplete \u003ci\u003ekits \u003c\/i\u003eand export 45\u003c\/p\u003e \u003cp\u003e1.6. Functors of \u003ci\u003ekits \u003c\/i\u003e46\u003c\/p\u003e \u003cp\u003e1.7. \u003ci\u003ekit \u003c\/i\u003eextension 49\u003c\/p\u003e \u003cp\u003e1.7.1. Presentation of extension 49\u003c\/p\u003e \u003cp\u003e1.7.2. Confinement and extension 55\u003c\/p\u003e \u003cp\u003e1.8. Conclusion 59\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2. Modules \u003c\/b\u003e\u003cb\u003e61\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1. Modules in Ada 62\u003c\/p\u003e \u003cp\u003e2.1.1. Developing modules 62\u003c\/p\u003e \u003cp\u003e2.1.2. Export and confinement 65\u003c\/p\u003e \u003cp\u003e2.1.3. Nesting modules 66\u003c\/p\u003e \u003cp\u003e2.1.4. Importing a module 66\u003c\/p\u003e \u003cp\u003e2.1.5. Flattening an import 67\u003c\/p\u003e \u003cp\u003e2.1.6. Generic modules 68\u003c\/p\u003e \u003cp\u003e2.1.7. Modules and separate compilation 71\u003c\/p\u003e \u003cp\u003e2.2. Modules in OCaml 71\u003c\/p\u003e \u003cp\u003e2.2.1. Module definition 72\u003c\/p\u003e \u003cp\u003e2.2.2. Export and confinement 73\u003c\/p\u003e \u003cp\u003e2.2.3. Confinement of type definitions 78\u003c\/p\u003e \u003cp\u003e2.2.4. Functors 82\u003c\/p\u003e \u003cp\u003e2.3. Modularity, namespaces and \u003ci\u003eW-kit \u003c\/i\u003e85\u003c\/p\u003e \u003cp\u003e2.3.1. Declaration interfaces 85\u003c\/p\u003e \u003cp\u003e2.3.2. \u003ci\u003eW-kits \u003c\/i\u003e86\u003c\/p\u003e \u003cp\u003e2.3.3. Modularity and header files in C 86\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3. Class and Object Features \u003c\/b\u003e\u003cb\u003e93\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1. Object-oriented features 93\u003c\/p\u003e \u003cp\u003e3.1.1. Objects 94\u003c\/p\u003e \u003cp\u003e3.1.2. Classes 95\u003c\/p\u003e \u003cp\u003e3.2. \u003ci\u003ekits \u003c\/i\u003eand object features 104\u003c\/p\u003e \u003cp\u003e3.2.1. Modeling classes 104\u003c\/p\u003e \u003cp\u003e3.2.2. Modeling objects 107\u003c\/p\u003e \u003cp\u003e3.2.3. Inheritance, redefinition and late binding 109\u003c\/p\u003e \u003cp\u003e3.2.4. Incomplete \u003ci\u003eC-kits\u003c\/i\u003e, parameterized \u003ci\u003eC-kits \u003c\/i\u003e113\u003c\/p\u003e \u003cp\u003e3.2.5. Subclassing, subtyping 115\u003c\/p\u003e \u003cp\u003e3.2.6. Type languages, classes and objects 119\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4. Classes in Selected Languages \u003c\/b\u003e\u003cb\u003e123\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1. Classes in Java 123\u003c\/p\u003e \u003cp\u003e4.1.1. General presentation 123\u003c\/p\u003e \u003cp\u003e4.1.2. Modules and packages 124\u003c\/p\u003e \u003cp\u003e4.1.3. Classes 125\u003c\/p\u003e \u003cp\u003e4.1.4. Marks 131\u003c\/p\u003e \u003cp\u003e4.1.5. Developing classes 134\u003c\/p\u003e \u003cp\u003e4.2. Classes in C++ 144\u003c\/p\u003e \u003cp\u003e4.2.1. Header files, namespaces, confinement 145\u003c\/p\u003e \u003cp\u003e4.2.2. Classes 148\u003c\/p\u003e \u003cp\u003e4.2.3. Inheritance and confinement 155\u003c\/p\u003e \u003cp\u003e4.2.4. Overloading in C++ 165\u003c\/p\u003e \u003cp\u003e4.2.5. Parameterized classes 168\u003c\/p\u003e \u003cp\u003e4.3. Classes in OCaml 174\u003c\/p\u003e \u003cp\u003e4.3.1. Presentation 174\u003c\/p\u003e \u003cp\u003e4.3.2. An overview of classes 174\u003c\/p\u003e \u003cp\u003e4.3.3. Marks, incomplete classes, parametrization 181\u003c\/p\u003e \u003cp\u003e4.3.4. Objects 186\u003c\/p\u003e \u003cp\u003e4.3.5. Class signatures: confinement and inheritance 192\u003c\/p\u003e \u003cp\u003e4.3.6. Multiple inheritance 195\u003c\/p\u003e \u003cp\u003e4.3.7. Other features 197\u003c\/p\u003e \u003cp\u003e4.4. Presentation of Python 197\u003c\/p\u003e \u003cp\u003e4.4.1. Getting started 198\u003c\/p\u003e \u003cp\u003e4.4.2. An overview of classes, modules and types 199\u003c\/p\u003e \u003cp\u003e4.4.3. Names and assignment 208\u003c\/p\u003e \u003cp\u003e4.4.4. Assignment and typechecking 211\u003c\/p\u003e \u003cp\u003e4.4.5. Overloading 213\u003c\/p\u003e \u003cp\u003e4.4.6. Modules and packages 217\u003c\/p\u003e \u003cp\u003e4.4.7. Confinement 218\u003c\/p\u003e \u003cp\u003e4.4.8. Inheritance 219\u003c\/p\u003e \u003cp\u003e4.4.9. Incomplete \u003ci\u003eC-kits \u003c\/i\u003eand abstract classes 221\u003c\/p\u003e \u003cp\u003e4.4.10. Other features 222\u003c\/p\u003e \u003cp\u003eAppendix: Questions to Guide Learning 225\u003c\/p\u003e \u003cp\u003eList of Notations 229\u003c\/p\u003e \u003cp\u003eReferences 231\u003c\/p\u003e \u003cp\u003eIndex 233\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Computer programming \/ software development [\u003ca title=\"See our other books on Computer programming \/ software development\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Computer%20programming%20\/%20software%20development%20%5BUM%5D%22\"\u003eUM\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wiley-ISTE","offers":[{"title":"Brand New","offer_id":52446749851928,"sku":"9781786306029","price":114.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781786306029.jpg?v=1785112766","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/concepts-and-semantics-of-programming-languages-2-modular-and-object-oriented-constructs-with-ocaml-python-c-ada-and-java-hardback-9781786306029","provider":"Freshly Printed Books","version":"1.0","type":"link"}