TY - BOOK AU - Bal,Henri E. AU - Grune,Dick TI - Programming language essentials / SN - 0201631792 PY - 1994/// CY - Wokingham, England PB - Addison-Wesley KW - PROGRAMMING LANGUAGE KW - IMPERATIVE LANGUAGE KW - OBJECT-ORIENTED LANGUAGES KW - FUNCTIONAL LANGUAGE KW - LOGIC LANGUAGE KW - PARALELL LANGUAGE KW - DISTRIBUTED LANGUAGE KW - PARADIGMS LANGUAGE N1 - CONTENIDO Chapter 1 Aspects of Programming Languages 1 Why programming languages? 2 Some history 4 Paradigms and the structure of this book 6 Programming paradigms 8 Programming models 9 Other language classifications 10 The structure of programs 11 Lexical structure 12 Syntactic structure 14 Context and semantics 16 Programming languages as communication media 16 Managing and reducing complexity 18 Problem decomposition 18 Abstraction 19 Contextual checking 21 Program processing 23 Interpretation versus compilation 23 Macro preprocessing 26 Debugging tools 27 Programming environments 28 Summary 29 Bibliographical notes 29 Exercises 30 Chapter 2 Imperative Languages 32 Principles 33 Data 34 Data declarations 34 Types and type constructors 38 Orthogonality of data types and declarations 50 Restricted types 52 Type equivalence 52 Coercions, contexts, casts and conversions 54 State 55 Assignments 56 Expressions 58 External state 62 Flow of control 64 Sequencing 64 Selection 64 Routine invocation 67 Repetition 67 Runtime error handling 71 Orthogonality of statements 76 Program composition 77 Blocks 78 Subprograms 84 Modules and packages 92 Generics 100 Programs 102 Orthogonality of program composition 105 Examples of imperative languages 105 Icon 105 PostScript 107 Summary 109 Bibliographical notes 110 Exercises 110 Chapter 3 Object-oriented Languages 113 Principles 113 The object-oriented design methodology 113 The principles of object-oriented languages 115 Classes 116 Inheritance 118 Inheritance and class hierarchies 121 Inheritance and types 123 Inheritance and polymorphism 124 Dynamic binding 125 Reference semantics 128 When to use inheritance? 131 Discussion 132 Example languages 133 C++ 134 Eiffel 135 Smalltalk-80 136 Summary 139 Bibliographical notes 140 Exercises 140 Chapter 4 Functional Languages 143 Principles 144 Functions 146 Lists 148 Types and polymorphism 150 Higher-order functions 151 Currying 153 Lazy evaluation 153 Equations and pattern matching 156 Example programs 158 Example language 161 Lisp 161 Summary 161 Bibliographical notes 162 Exercises 163 Chapter 5 Logic Languages 165 Principles 165 Horn clauses 166 Executing Horn clauses 168 Logical variables 170 Relations 172 Data structures 173 Controlling the search order 176 Example programs 178 Example language 183 Prolog 183 Summary 184 Bibliographical notes 185 Exercises 185 Chapter 6 Parallel and Distributed Languages 187 Principles 187 Parallelism 190 Co-routines 191 Parallel statements 191 Processes 193 Communication and synchronization 194 Shared variables 194 Message passing 202 In between message passing and shared variables 211 Languages based on other paradigms 214 Example languages 215 Mesa 216 Synchronizing Resources (SR) 216 Ada 217 Summary 219 Bibliographical notes 220 Exercises 221 Chapter 7 Other Paradigms 223 Additional general-purpose paradigms 225 Constraint programming 225 Access-oriented programming 228 Single-datastructure languages 229 Additional special-purpose paradigms 232 Dataflow programming 232 Little languages 238 Database languages 240 Real-time languages 241 Summary 243 Bibliographical notes 244 Exercises 244 Appendix A References to Languages 246 Appendix B Answers to Exercises 249 References 258 Index 264 ER -