Appleby, Doris

Programming languages : paradigm and practice / Doris Appleby, Julius J. Vandekopple. - 2da. - New York : McGraw-Hill, 1997 - 444 p.

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

0070053154


PROGRAMMING LANGUAGE
IMPERATIVE LANGUAGE
OBJECT-ORIENTED PROGRAMMING
FORMAL LANGUAGE
AUTOMATA LANGUAGE
DECLARATIVE LANGUAGE
DATABASE LANGUAGE

004.43 AP52