CART

(0) items

Programming Languages : Principles and Practice,9780534953416
This item qualifies for
FREE SHIPPING!

FREE SHIPPING OVER $59!

Your order must be $59 or more, you must select US Postal Service Shipping as your shipping preference, and the "Group my items into as few shipments as possible" option when you place your order.

Bulk sales, PO's, Marketplace Items, eBooks, Apparel, and DVDs not included.

Programming Languages : Principles and Practice

by
Edition:
2nd
ISBN13:

9780534953416

ISBN10:
0534953417
Format:
Hardcover
Pub. Date:
7/16/2002
Publisher(s):
Cengage Learning
List Price: $240.95

Buy Used Textbook

(Recommended)
Usually Ships in 2-3 Business Days
U9780534953416
$168.67

Rent Textbook

We're Sorry
Sold Out

eTextbook

We're Sorry
Not Available

New Textbook

We're Sorry
Sold Out

More New and Used
from Private Sellers
Starting at $0.01
See Prices

Questions About This Book?

What version or edition is this?
This is the 2nd edition with a publication date of 7/16/2002.
What is included with this book?
  • The Used copy of this book is not guaranteed to inclue any supplemental materials. Typically, only the book itself is included.

Related Products


  • Programming Languages : Principles and Practices
    Programming Languages : Principles and Practices
  • Programming Languages: Principles and Practice
    Programming Languages: Principles and Practice




Summary

Kenneth Louden's new edition of Programming Languages: Principles and Practice provides students with an overview of key issues in the study of programming languages. Rather than focus on individual language issues, Kenneth Louden focuses on language paradigms and concepts that are common to all languages. Louden also includes materials that are not frequently found in other introductory texts, such as implementation issues and theoretical foundations of programming languages. Coverage of these topics helps serve as a bridge to students' compiler courses and other theoretical computer science courses.

Table of Contents

Introduction
1(34)
What Is a Programming Language?
2(3)
Abstractions in Programming Languages
5(8)
Computational Paradigms
13(7)
Language Definition
20(2)
Language Translation
22(7)
Language Design
29(6)
Exercises
30(3)
Notes and References
33(2)
History
35(20)
Early History: The First Programmer
35(2)
The 1950s: The First Programming Languages
37(2)
The 1960s: An Explosion in Programming Languages
39(3)
The 1970s: Simplicity, Abstraction, Study
42(1)
The 1980s: New Directions and the Rise of Object-Orientation
43(3)
The 1990s: Consolidation, the Internet, Libraries, and Scripting
46(3)
The Future
49(6)
Exercises
50(3)
Notes and References
53(2)
Language Design Principles
55(22)
History and Design Criteria
57(2)
Efficiency
59(1)
Regularity
60(3)
Further Language Design Principles
63(5)
C++: A Case Study in Language Design
68(9)
Exercises
72(4)
Notes and References
76(1)
Syntax
77(48)
Lexical Structure of Programming Languages
78(5)
Context-Free Grammars and BNFs
83(6)
Parse Trees and Abstract Syntax Trees
89(3)
Ambiguity, Associativity, and Precedence
92(5)
EBNFs and Syntax Diagrams
97(4)
Parsing Techniques and Tools
101(12)
Lexics versus Syntax versus Semantics
113(12)
Exercises
115(8)
Notes and References
123(2)
Basic Semantics
125(64)
Attributes, Binding, and Semantic Functions
126(4)
Declarations, Blocks, and Scope
130(9)
The Symbol Table
139(13)
Name Resolution and Overloading
152(7)
Allocation, Lifetimes, and the Environment
159(8)
Variables and Constants
167(7)
Aliases, Dangling References, and Garbage
174(15)
Exercises
180(7)
Notes and References
187(2)
Data Types
189(71)
Data Types and Type Information
192(5)
Simple Types
197(3)
Type Constructors
200(15)
Type Nomenclature in Sample Languages
215(4)
Type Equivalence
219(6)
Type Checking
225(6)
Type Conversion
231(4)
Polymorphic Type Checking
235(9)
Explicit Polymorphism
244(16)
Exercises
250(8)
Notes and References
258(2)
Control I---Expressions and Statements
260(49)
Expressions
262(8)
Conditional Statements and Guards
270(6)
Loops and Variation on While
276(4)
The Goto Controversy
280(2)
Exception Handling
282(27)
Exercises
299(8)
Notes and References
307(2)
Control II---Procedures and Environments
309(47)
Procedure Definition and Activation
311(2)
Procedure Semantics
313(4)
Parameter Passing Mechanisms
317(8)
Procedure Environments, Activations, and Allocation
325(15)
Dynamic Memory Management
340(4)
Exception Handling and Environments
344(12)
Exercises
346(9)
Notes and References
355(1)
Abstract Data Types and Modules
356(53)
The Algebraic Specification of Abstract Data Types
359(5)
Abstract Data Type Mechanisms and Modules
364(4)
Separate Compilation in C, C++ Namespaces, and Java Packages
368(7)
Ada Packages
375(6)
Modules in ML
381(4)
Modules in Earlier Languages
385(5)
Problems with Abstract Data Type Mechanisms
390(8)
The Mathematics of Abstract Data Types
398(11)
Exercises
402(5)
Notes and References
407(2)
Object-Oriented Programming
409(62)
Software Reuse and Independence
410(3)
Java: Objects, Classes, and Methods
413(6)
Inheritance
419(12)
Dynamic Binding
431(3)
C++
434(12)
Smalltalk
446(6)
Design Issues in Object-Oriented Languages
452(4)
Implementation Issues in Object-Oriented Languages
456(15)
Exercises
462(8)
Notes and References
470(1)
Functional Programming
471(68)
Programs as Functions
473(3)
Functional Programming in an Imperative Language
476(5)
Scheme: A Dialect of LISP
481(13)
ML: Functional Programming with Static Typing
494(13)
Delayed Evaluation
507(5)
Haskell---A Fully-Curried Lazy Language with Overloading
512(8)
The Mathematics of Functional Programming I: Recursive Functions
520(4)
The Mathematics of Functional Programming II: Lambda Calculus
524(15)
Exercises
529(8)
Notes and References
537(2)
Logic Programming
539(40)
Logic and Logic Programs
541(4)
Horn Clauses
545(3)
Resolution and Unification
548(4)
The Language Prolog
552(11)
Problems with Logic Programming
563(5)
Extending Logic Programming: Constraint Logic Programming and Equational Systems
568(11)
Exercises
572(5)
Notes and References
577(2)
Formal Semantics
579(41)
A Sample Small Language
581(4)
Operational Semantics
585(10)
Denotational Semantics
595(9)
Axiomatic Semantics
604(7)
Proofs of Program Correctness
611(9)
Exercises
614(5)
Notes and References
619(1)
Parallel Programming
620(53)
Introduction to Parallel Processing
622(4)
Parallel Processing and Programming Languages
626(8)
Threads
634(9)
Semaphores
643(5)
Monitors
648(6)
Message Passing
654(6)
Parallelism in Non-Imperative Languages
660(13)
Exercises
665(6)
Notes and References
671(2)
Bibliography 673(11)
Index 684


Please wait while the item is added to your cart...