Skip to content Skip to footer
-70%

Programming Languages: Principles and Practices 3rd Edition by Kenneth C. Louden, ISBN-13: 978-1111529413

Original price was: $50.00.Current price is: $14.99.

 Safe & secure checkout

Description

Description

Programming Languages: Principles and Practices 3rd Edition by Kenneth C. Louden, ISBN-13: 978-1111529413

[PDF eBook eTextbook]

  • Publisher: ‎ Cengage Learning; 3rd edition (January 26, 2011)
  • Language: ‎ English
  • 704 pages
  • ISBN-10: ‎ 1111529418
  • ISBN-13: ‎ 978-1111529413

Kenneth Louden and Kenneth Lambert’s new edition of PROGRAMMING LANGUAGES: PRINCIPLES AND PRACTICE, 3E gives advanced undergraduate students an overview of programming languages through general principles combined with details about many modern languages. Major languages used in this edition include C, C++, Smalltalk, Java, Ada, ML, Haskell, Scheme, and Prolog; many other languages are discussed more briefly. The text also contains extensive coverage of implementation issues, the theoretical foundations of programming languages, and a large number of exercises, making it the perfect bridge to compiler courses and to the theoretical study of programming languages.

Table of Contents:

Preface

Overview and Organization

Use as a Text

Summary of Changes between the Second and Third Editions

Instructor and Student Resources

Acknowledgments

Notes and References

CHAPTER 1: Introduction

1.1 The Origins of Programming Languages

1.2 Abstractions in Programming Languages

1.3 Computational Paradigms

1.4 Language Definition

1.5 Language Translation

1.6 The Future of Programming Languages

Exercises

Notes and References

CHAPTER 2: Language Design Criteria

2.1 Historical Overview

2.2 Efficiency

2.3 Regularity

2.4 Security

2.5 Extensibility

2.6 C++: An Object-Oriented Extension of C

2.7 Python: A General-Purpose Scripting Language

Exercises

Notes and References

CHAPTER 3: Functional Programming

3.1 Programs as Functions

3.2 Scheme: A Dialect of Lisp

3.3 ML: Functional Programming with Static Typing

3.4 Delayed Evaluation

3.5 Haskell—A Fully Curried Lazy Language with Overloading

3.6 The Mathematics of Functional Programming: Lambda Calculus

Exercises

Notes and References

CHAPTER 4: Logic Programming

4.1 Logic and Logic Programs

4.2 Horn Clauses

4.3 Resolution and Unification

4.4 The Language Prolog

4.5 Problems with Logic Programming

4.6 Curry: A Functional Logic Language

Exercises

Notes and References

CHAPTER 5: Object-Oriented Programming

5.1 Software Reuse and Independence

5.2 Smalltalk

5.3 Java

5.4 C++

5.5 Design Issues in Object-Oriented Languages

5.6 Implementation Issues in Object-Oriented Languages

Exercises

Notes and References

CHAPTER 6: Syntax

6.1 Lexical Structure of Programming Languages

6.2 Context-Free Grammars and BNFs

6.3 Parse Trees and Abstract Syntax Trees

6.4 Ambiguity, Associativity, and Precedence

6.5 EBNFs and Syntax Diagrams

6.6 Parsing Techniques and Tools

6.7 Lexics vs. Syntax vs. Semantics

6.8 Case Study: Building a Syntax Analyzer for TinyAda

Exercises

Notes and References

CHAPTER 7: Basic Semantics

7.1 Attributes, Binding, and Semantic Functions

7.2 Declarations, Blocks, and Scope

7.3 The Symbol Table

7.4 Name Resolution and Overloading

7.5 Allocation, Lifetimes, and the Environment

7.6 Variables and Constants

7.7 Aliases, Dangling References, and Garbage

7.8 Case Study: Initial Static Semantic Analysis of TinyAda

Exercises

Notes and References

CHAPTER 8: Data Types

8.1 Data Types and Type Information

8.2 Simple Types

8.3 Type Constructors

8.4 Type Nomenclature in Sample Languages

8.5 Type Equivalence

8.6 Type Checking

8.7 Type Conversion

8.8 Polymorphic Type Checking

8.9 Explicit Polymorphism

8.10 Case Study: Type Checking in TinyAda

Exercises

Notes and References

CHAPTER 9: Control I—Expressions and Statements

9.1 Expressions

9.2 Conditional Statements and Guards

9.3 Loops and Variations on WHILE

9.4 The GOTO Controversy and Loop Exits

9.5 Exception Handling

9.6 Case Study: Computing the Values of Static Expressions in TinyAda

Exercises

Notes and References

CHAPTER 10: Control II—Procedures and Environments

10.1 Procedure Definition and Activation

10.2 Procedure Semantics

10.3 Parameter-Passing Mechanisms

10.4 Procedure Environments, Activations, and Allocation

10.5 Dynamic Memory Management

10.6 Exception Handling and Environments

10.7 Case Study: Processing Parameter Modes in TinyAda

Exercises

Notes and References

CHAPTER 11: Abstract Data Types and Modules

11.1 The Algebraic Specification of Abstract Data Types

11.2 Abstract Data Type Mechanisms and Modules

11.3 Separate Compilation in C, C++ Namespaces, and Java Packages

11.4 Ada Packages

11.5 Modules in ML

11.6 Modules in Earlier Languages

11.7 Problems with Abstract Data Type Mechanisms

11.8 The Mathematics of Abstract Data Types

Exercises

Notes and References

CHAPTER 12: Formal Semantics

12.1 A Sample Small Language

12.2 Operational Semantics

12.3 Denotational Semantics

12.4 Axiomatic Semantics

12.5 Proofs of Program Correctness

Exercises

Notes and References

CHAPTER 13: Parallel Programming

13.1 Introduction to Parallel Processing

13.2 Parallel Processing and Programming Languages

13.3 Threads

13.4 Semaphores

13.5 Monitors

13.6 Message Passing

13.7 Parallelism in Non-Imperative Languages

Exercises

Notes and References

Bibliography

Index

Kenneth C. Louden is Emeritus Professor of Computer Science and a past chair of the Department of Computer Science at San Jose State University, Silicon Valley’s primary supplier of graduates to the tech industry. He has written several texts and articles on advanced topics in computer science.

Kenneth A. Lambert is Professor of Computer Science and Head of the Department at Washington and Lee University. He has taught programming language design for 25 years and has been an active researcher in computer science education. Lambert has co-authored a series of introductory C++ textbooks with Douglas Nance and Thomas Naps and a series of introductory Java textbooks with Martin Osborne, and is the author of an introductory Python textbook. He is also the co-creator of the BreezySwing framework and is the creator of the breezypythongui framework.

What makes us different?

• Instant Download

• Always Competitive Pricing

• 100% Privacy

• FREE Sample Available

• 24-7 LIVE Customer Support

Delivery Info

Reviews (0)

Reviews

There are no reviews yet.

Be the first to review “Programming Languages: Principles and Practices 3rd Edition by Kenneth C. Louden, ISBN-13: 978-1111529413”

Your email address will not be published. Required fields are marked *