Concepts and Semantics of Programming Languages 1. Therese Hardin

Concepts and Semantics of Programming Languages 1 - Therese Hardin


Скачать книгу
tion id="u4c814010-9115-5f5a-9e52-f6dd3ab5c6f6">

      

      1  Cover

      2  Title Page

      3  Copyright

      4  Foreword

      5  Preface

      6  1 From Hardware to Software 1.1. Computers: a low-level view 1.2. Computers: a high-level view

      7  2 Introduction to Semantics of Programming Languages 2.1. Environment, memory and state 2.2. Evaluation of expressions 2.3. Definition and assignment 2.4. Exercises

      8  3 Semantics of Functional Features 3.1. Syntactic aspects 3.2. Execution semantics: evaluation functions 3.3. Execution semantics: operational semantics 3.4. Evaluation functions versus evaluation relations 3.5. Semantic properties 3.6. Exercises

      9  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.5. Semantic properties 4.6. Procedures 4.7. Other approaches 4.8. Exercises

      10  5 Types 5.1. Type checking: when and how? 5.2. Informal typing of a program Exp2 5.3. Typing rules in Exp2 5.4. Type inference algorithm in Exp2 5.5. Properties 5.6. Typechecking of imperative constructs 5.7. Subtyping and overloading

      11  6 Data Types 6.1. Basic types 6.2. Arrays 6.3. Strings 6.4. Type definitions 6.5. Generalized conditional 6.6. Equality

      12  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.6. Memory management

      13  8 Exceptions 8.1. Errors: notification and propagation 8.2. A simple formalization: ML-style exceptions 8.3. Exceptions in other languages

      14  Conclusion

      15  Appendix: Solutions to the Exercises

      16  List of Notations

      17  Index of Programs

      18  References

      19  Index

      20  End User License Agreement

      List of Illustrations

      1 Chapter 1Figure 1.1. Binary half-adderFigure 1.2. “Hello world!” in C and in x86-64 instructionsFigure 1.3. Function calls and return addressesFigure 1.4. Coding the ADD instruction in MIPS32®Figure 1.5. Compilation process

      2 Chapter 5Figure 5.1. Covariance and contravariance. For a color version of this figure, s...

      3 Chapter 6Figure 6.1


Скачать книгу