Details

Concepts and Semantics of Programming Languages 2


Concepts and Semantics of Programming Languages 2

Modular and Object-oriented Constructs with OCaml, Python, C++, Ada and Java
1. Aufl.

von: Therese Hardin, Mathieu Jaume, Franc*ois Pessaux, Veronique Viguie Donzeau-Gouge

139,99 €

Verlag: Wiley
Format: EPUB
Veröffentl.: 06.08.2021
ISBN/EAN: 9781119851189
Sprache: englisch
Anzahl Seiten: 272

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

This 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.<br /><br /><i>Concepts and Semantics of Programming Languages 2</i> 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.<br /><br />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.
<p>Foreword ix</p> <p>Preface xi</p> <p><b>Chapter 1. Namespaces: Model and Operations </b><b>1</b></p> <p>1.1. Reusing, dividing, confining 2</p> <p>1.1.1. Analysis of some developer needs 2</p> <p>1.1.2. Meeting developer needs 3</p> <p>1.2. Namespaces 5</p> <p>1.2.1. Namespaces definition 6</p> <p>1.2.2. Extending notions of environment and binding 8</p> <p>1.3. <i>kit </i>development 12</p> <p>1.3.1. Namespace of a <i>kit </i>14</p> <p>1.3.2. Order of fields introduction 15</p> <p>1.3.3. Typing <i>kits </i>15</p> <p>1.3.4. <i>kit </i>values 18</p> <p>1.3.5. <i>kit </i>export, confining fields 22</p> <p>1.3.6. <i>kits </i>import 28</p> <p>1.3.7. Stages of <i>kit </i>development 32</p> <p>1.4. Incomplete <i>kits </i>33</p> <p>1.4.1. Type and value of an incomplete <i>kit </i>34</p> <p>1.4.2. Completion of an incomplete <i>kit </i>34</p> <p>1.4.3. Confining an incomplete <i>kit </i>36</p> <p>1.5. Parameterized <i>kits </i>36</p> <p>1.5.1. <i>kits </i>parameterized by a type 36</p> <p>1.5.2. <i>kits </i>parameterized by types and values 41</p> <p>1.5.3. Confinement, parametrization, incomplete <i>kits </i>and export 45</p> <p>1.6. Functors of <i>kits </i>46</p> <p>1.7. <i>kit </i>extension 49</p> <p>1.7.1. Presentation of extension 49</p> <p>1.7.2. Confinement and extension 55</p> <p>1.8. Conclusion 59</p> <p><b>Chapter 2. Modules </b><b>61</b></p> <p>2.1. Modules in Ada 62</p> <p>2.1.1. Developing modules 62</p> <p>2.1.2. Export and confinement 65</p> <p>2.1.3. Nesting modules 66</p> <p>2.1.4. Importing a module 66</p> <p>2.1.5. Flattening an import 67</p> <p>2.1.6. Generic modules 68</p> <p>2.1.7. Modules and separate compilation 71</p> <p>2.2. Modules in OCaml 71</p> <p>2.2.1. Module definition 72</p> <p>2.2.2. Export and confinement 73</p> <p>2.2.3. Confinement of type definitions 78</p> <p>2.2.4. Functors 82</p> <p>2.3. Modularity, namespaces and <i>W-kit </i>85</p> <p>2.3.1. Declaration interfaces 85</p> <p>2.3.2. <i>W-kits </i>86</p> <p>2.3.3. Modularity and header files in C 86</p> <p><b>Chapter 3. Class and Object Features </b><b>93</b></p> <p>3.1. Object-oriented features 93</p> <p>3.1.1. Objects 94</p> <p>3.1.2. Classes 95</p> <p>3.2. <i>kits </i>and object features 104</p> <p>3.2.1. Modeling classes 104</p> <p>3.2.2. Modeling objects 107</p> <p>3.2.3. Inheritance, redefinition and late binding 109</p> <p>3.2.4. Incomplete <i>C-kits</i>, parameterized <i>C-kits </i>113</p> <p>3.2.5. Subclassing, subtyping 115</p> <p>3.2.6. Type languages, classes and objects 119</p> <p><b>Chapter 4. Classes in Selected Languages </b><b>123</b></p> <p>4.1. Classes in Java 123</p> <p>4.1.1. General presentation 123</p> <p>4.1.2. Modules and packages 124</p> <p>4.1.3. Classes 125</p> <p>4.1.4. Marks 131</p> <p>4.1.5. Developing classes 134</p> <p>4.2. Classes in C++ 144</p> <p>4.2.1. Header files, namespaces, confinement 145</p> <p>4.2.2. Classes 148</p> <p>4.2.3. Inheritance and confinement 155</p> <p>4.2.4. Overloading in C++ 165</p> <p>4.2.5. Parameterized classes 168</p> <p>4.3. Classes in OCaml 174</p> <p>4.3.1. Presentation 174</p> <p>4.3.2. An overview of classes 174</p> <p>4.3.3. Marks, incomplete classes, parametrization 181</p> <p>4.3.4. Objects 186</p> <p>4.3.5. Class signatures: confinement and inheritance 192</p> <p>4.3.6. Multiple inheritance 195</p> <p>4.3.7. Other features 197</p> <p>4.4. Presentation of Python 197</p> <p>4.4.1. Getting started 198</p> <p>4.4.2. An overview of classes, modules and types 199</p> <p>4.4.3. Names and assignment 208</p> <p>4.4.4. Assignment and typechecking 211</p> <p>4.4.5. Overloading 213</p> <p>4.4.6. Modules and packages 217</p> <p>4.4.7. Confinement 218</p> <p>4.4.8. Inheritance 219</p> <p>4.4.9. Incomplete <i>C-kits </i>and abstract classes 221</p> <p>4.4.10. Other features 222</p> <p>Appendix: Questions to Guide Learning 225</p> <p>List of Notations 229</p> <p>References 231</p> <p>Index 233</p>
<p><b>Therese Hardin</b> is Professor Emeritus at the Laboratoire d'Informatique de Paris 6 (LIP6), Sorbonne University, France.</p> <p><b>Mathieu Jaume</b> is a lecturer at the Laboratoire d'Informatique de Paris 6 (LIP6), Sorbonne University, France.</p> <p><b>François Pessaux</b> is Associate Professor in the Computer Science and Systems Engineering Unit (U2IS) of ENSTA Paris, France.</p> <p><b>Veronique Viguie Donzeau-Gouge</b> is Professor Emeritus at the Centre d'études et de recherche en informatique (CEDRIC) of the Conservatoire national des arts et métiers (Cnam Paris), France.</p>

Diese Produkte könnten Sie auch interessieren:

Domain Architectures
Domain Architectures
von: Daniel J. Duffy
PDF ebook
31,99 €