Programming Language Essentials
Henri E. Bal, Dick Grune · Data Archiving and Networked Services (DANS) · 1994
Preface 1 Aspects of Programming Languages 1.1 Why programming languages? 1.2 Some history 1.3 Paradigms and the structure of this book 1.4 The structure of programs 1.5 Programming languages as communication media 1.6 Managing and reducing complexity 1.7 Program processing Summary Bibliographical notes Exercises 2 Imperative Languages 2.1 Principles 2.2 Data 2.3 State 2.4 Flow-of-control 2.5 Program composition 2.6 Examples of imperative languages Summary Bibliographical notes Exercises 3 Object-oriented Languages 3.1 principles 3.2 Classes 3.3 Inheritance 3.4 Inheritance and class hierarchies 3.5 Inheritance and types 3.6 Inheritance and polymorphism 3.7 Dynamic binding 3.8 Reference semantics 3.9 When to use inheritance 3.10 Discussion 3.11 Example languages Summary Bibliographical notes Exercises 4 Functional Languages 4.1 Principles 4.2 Functions 4.3 Lists 4.4 Types and polymorphisms 4.5 Higher-order function s 4.6 Currying 4.7 Lazy evaluation 4.8 Equations and pattern matching cont/... 4.9 Example programs 4.10 Example language Summary Bibliographical notes Exercises 5 Logic Languages 5.1 Principles 5.2 Horn clauses 5.3 Executing Horn clauses 5.4 Logical variables 5.5 Relations 5.6 Data structures 5.7 Controlling the search order 5.8 Example programs 5.9 Example languages Summary Bibliographical notes Exercises 6 Parallel and Distributed Languages 6.1 Principles 6.2 Parallelism 6.3 Communication and synchronization 6.4 Languages based on other paradigms 6.5 Example languages Summary Bibliographical notes Exercises 7 Other Paradigms 7.1 Additional general-purpose paradigms 7.2 Additional special-purpose paradigms Summary Bibliographical notes Exercises Appendix A references to Languages Appendix B Answers to Exercises References Index