TY - BOOK AU - Appleby,Doris AU - Vandekopple,Julius J. TI - Programming languages : : paradigm and practice / SN - 0070053154 PY - 1997/// CY - New York : PB - McGraw-Hill, KW - PROGRAMMING LANGUAGE KW - IMPERATIVE LANGUAGE KW - OBJECT-ORIENTED PROGRAMMING KW - FORMAL LANGUAGE KW - AUTOMATA LANGUAGE KW - DECLARATIVE LANGUAGE KW - DATABASE LANGUAGE N1 - CONTENIDO PART I: Preliminary Concepts Chapter 0. Introduction 2 In this Chapter 3 Problem Solving 3 Devices from Mathematics / Conceptual and Implementation Levels Language Paradigms 6 Imperative Paradigms / Declarative Paradigms Practical Considerations 11 From Low Through High to Very High Level / Programming in the Large / Special Problems Language Criteria 14 Well-Defined Descriptions / Provability / Reliability / Fast Translation / Efficient Object Code / Orthogonality / Generality / Consistency and Common Notations / Uniformity / Subsets / Extensibility / Portability Summary 25 Notes on References 25 Chapter 1. Variables end Date types 28 In this Chapter 29 Primitive Data Types 30 Integer / Real / Character / Boolean / Pointer Variables 36 Identifiers / Reserved Words and Keywords / Binding / Blocks and Scope / Activation Records Structured Data Types 47 User-Defined Types / Aggregate Types / Type Issues Summary 61 Notes on References 61 Chapter 2. Abstraction 62 In this chapter 64 Data Abstraction 64 Data and the Store / Abstract Data Types / Generic Types Control Abstraction 74 Branching / Iteration / Recursion / Exceptions Procedural Abstraction 83 Procedures / Modules and ADTs / Classes of ADTs / Objects / Concurrent Execution Summary 94 Notes on References 95 PART II: Imperative Languages Chapter 3. Block Structure 98 In this Chapter 100 ALGOL 60 100 Historical Vignette: Design by Committee / Concepts from ALGOL 60 / Trouble Spots in ALGOL 60 / Language Specification ALGOL 68 111 Pascal 113 Historical Vignette: Pascal and Modula-2: Niklaus Wirth / Philosophy and Structure Ada 117 Historical Vignette: Ada / Program Organization / Types / The Generic Facility / Exceptions / The Ada Programming Support Environment (APSE) C132 Historical Vignette: The Dynamic Duo, Dennis Ritchie and Kenneth Thompson / Data Types in C / C Operators / C and UNIX / The C Standard / Advantages and Disadvantages Summary 145 Notes on References 146 Chapter 4. Languages for Object-Oriented Programming (OOP) 148 In this Chapter 150 Programming with Objects 150 Messages, Methods, and Encapsulation / Early Notions of Objects in Simula / Objects in Ada 83 and Ada 95 Classes and Polymorphism 162 Generic Procedures and Packages in Ada / Classes in Object Pascal / Classes in C++ / Implementation of Inherited Classes Smalltalk 175 Historical Vignette: Smalltalk: Alan Kay Inheritance and Object-Orientation 177 Types and Subtypes in Inheritance Hierarchies / Multiple Inherit ance / Language Exemplars / Dynamic Binding Java 196 Java Language Constructs / The Java Application Programming Interfaces (APls)/ Compiling and Running a Java Program / HotJava and Applets / Program Types / Differences Between Java, C, and C++ Summary 206 Notes on references 206 Chapter 5. Language constructs for Parallel Processing 208 In this Chapter 209 The paradigm 210 Multiple Processes 212 Synchronization of Cooperating Processes 213 Semaphores / Monitors / Rendezvous / Message Passing Some synchronization solutions 221 Semaphores in ALGOL 68, C, and Pascal S / Monitor and Process Types in Concurrent Pascal / The Rendezvous in Ada and Concurrent C / Message Passing in Occam Tuples and Objects 235 The Tuple-Space of Linda / Objects as Units of Parallelism Managing Partial Failure 240 Summary 241 Notes on references 242 PART III: Formal Languages and Automata Chapter 6. Formal Languages 244 In this Chapter 245 Formal Languages 246 Formal Languages Defined / The Chomsky Hierarchy of Formal Languages / Historical Vignette: Language Classifications: Noam Chomsky / Historical Vignette: Alan Turing: What Machines Can't Do Regular Grammars 260 Regular Expressions / Finite Automata (FAs, NFAs, and DFAs)/ Applications Context-Free Grammars (CFGs) 267 Push-Down Automata (PDAs)/ Parse Trees / Ambiguous Grammars / Applications / Normal Forms Grammars for Natural Languages 279 Summary 281 Notes on References 282 PART IV: Declarative Languages Chapter 7. Logic Programming 284 In this Chapter 285 Formal Logical Systems 286 Historical Vignette: Aristotle / Proofs / Searching PROLOG 301 Historical Vignette: PROLOG: Colmerauer and Roussel / Conversing in PROLOG: Facts, Rules, and Queries / PROLOG Implementations / Applications / Strengths and Weaknesses Summary 321 Notes on References 322 Chapter 8. Functional (Applicative)Programming 324 In this Chapter 327 Features of Functional Languages 327 Composition of Functions / Functions as First-Class Objects / No Side Effects / Clean Semantics LISP 330 Historical Vignette: LISP: John McCarthy / The LISP Language (SCHEME Dialect)/ Other Nonfunctional Features / Dialects / Common LISP Implementing Functional Languages 354 Lazy Versus Strict Evaluation / Scope and Bindings / Garbage Collection Supporting Parallelism with Functions 362 Other Functional Languages 364 APL / ML / Others Summary 373 Notes on References 374 Chapter 9. Languages for Databases 376 In this Chapter 378 Hierarchical and Network Models 378 The Relational Model 380 Manipulating Relational Databases / SQL / Logic-Based Systems Using PROLOG Semantic Data Models 390 Object-Oriented Database Model 392 Summary 393 Notes on References 394 Appendix A. Logical Calculi (for Chapter 7) 395 Appendix B. The lambda Calculus (for Chapter 8) 405 Appendix C. Software Sources 411 References 415 Index 429 Labs Abstract Data Types: Ada/Pascal 71 Parameter-Passing Methods: Pascal 90 Blocks: Ada/Pascal 132 Combining Low and High Level Features: C 142 Fun with C Tricks: C 143 IDE Tools: Pascal/C 144 APSE Tools: Ada 145 Objects, Encapsulation, and Methods: Object Pascal/Ada/C++ 161 Polymorphism: Object Pascal/Ada/C++ 174 Classes and Inheritance: Object Pascal/C++ 195 Objects and Object-Oriented Programming: Java 205 HTML to Be Used on the World Wide Web with Java 205 An Applet: Java 205 Simulation of Parallel Processing: Ada 232 Producers-Consumers: Pascal S/Occam 2/C-Linda 239 Regular Expressions: grep 265 EBNF: Paper and Pencil 277 Language Introduction: PROLOG 298 Cannibals and Missionaries: PROLOG 318 Getting Acquainted with LISP: SCHEME 347 A Palindrome Function: SCHEME 347 Programming Using Loops: SCHEME 347 Tracing and Debugging: SCHEME 348 Programming in SCOOPS: SCHEME 352 SQL: dBASE IV 389 ER -