Higher Education

Programming Languages: Principles and Practices, 3rd Edition

  • Kenneth C. Louden San Jose State University
  • Kenneth A. Lambert Washington and Lee University
  • ISBN-10: 1111529418  |  ISBN-13: 9781111529413
  • 704 Pages
  • Previous Editions: 2003, 1993
  • © 2012 | Published
  • College Bookstore Wholesale Price = $207.00
  *Why an online review copy?
  • It's the greener, leaner way to review! An online copy cuts down on paper and on time. Reduce the wait (and the weight) of printed texts. Your online copy arrives instantly, and you can review it anytime from your computer or favorite mobile device.

If you prefer a print copy to review, please contact your representative.



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.

Additional Product Information

Features and Benefits

  • Overview of the history of programming languages, and introduces the idea of abstraction and the concept of different language paradigms.
  • Overview of language design criteria.
  • Address three major language paradigms.
  • Covers syntax in some detail, including the use of BNF, EBNF, and syntax diagrams.
  • Covers the central semantic issues of programming languages.
  • Overview of modules and abstract data types, including language mechanisms for equational, or algebraic, specification.
  • Introduces the three principal methods of formal semantics: operational, denotational, and axiomatic.
  • the major ways parallelism has been introduced into programming languages.

Table of Contents

1. Introduction.
2. Language Design Criteria.
3. Functional Programming.
4. Logic Programming.
5. Object-Oriented Programming.
6. Syntax.
7. Basic Semantics.
8. Data Types.
9. Control I - Expressions and Statements.
10. Control II - Procedures and Environments.
11. Abstract Data Types and Modules.
12. Formal Semantics.
13. Parallel Programming.

What's New

  • NEW! Earlier exposure to programming languages and paradigms, allowing students to become aware of their power and their limitations.
  • NEW! Students will have an opportunity to write programs in one or more new languages much earlier in the course, thus giving them an opportunity to become proficient in alternative styles of programming.
  • NEW! The material on the history of programming languages in Chapter 2 has been condensed and moved to Chapter 1, thus shortening the book by one chapter. A brief discussion of machine language and assembly language has also been added to this chapter.
  • NEW! A case study on the design of Python, a popular general-purpose scripting language, now follows the case study on C++ in Chapter 2. The two case studies illustrate the tradeoffs that occur when designing new languages.
  • NEW! The chapter on object-oriented programming is now the last of the three chapters on programming paradigms instead of the first one. The order of these chapters now reflects the increasing complexity of the underlying models of computation of each programming paradigm (functions, logic, objects).
  • NEW! Object-oriented programming in Chapter 5 is now introduced with Smalltalk rather than Java. This new order of presentation will allow students to learn how a language was cleanly built around object-oriented concepts, before they see the tradeoffs and compromises that designers had to make in designing Java and C++.
  • NEW! The section on logical constraint languages in the chapter on logic programming has been replaced with a discussion of the functional logic language Curry.
  • NEW! Beginning in Chapter 6, on syntax, and extending through the Chapters 7-10, on semantics, new end-of-chapter sections present a case study of a parser for a small language that resembles Ada. The design of this software is presented incrementally, starting with a raw syntax analyzer and adding features to handle static semantic analysis, such as scope analysis and type checking. This new case study will give students extra practical experience with the concepts they learn in each of these chapters.


All supplements have been updated in coordination with the main title. Select the main title's "About" tab, then select "What's New" for updates specific to title's edition.

For more information about these supplements, or to obtain them, contact your Learning Consultant.

Instructor Supplements

Instructor's Resource CD-ROM  (ISBN-10: 1111529426 | ISBN-13: 9781111529420)

Now all instructor materials are available on one convenient and easy-to-use CD. Designed to help facilitate classroom instruction, this CD has instructor files unique to the textbook. All of these tools can help motivate students and enhance their knowledge and course appreciation. Please note that all supplements (with the exception of figure files) are also available for download on the Companion site for the text at www.cengage.com. KEY FEATURES: The Instructor Resources CD includes: Data and solution files for this course, Figure files to help you customize handouts and presentations, ExamView test banks with true/false, modified true/false, multiple choice, completion, matching, case-based critical thinking, and essay question types to help you assess student understanding, Instructor's manuals for each lesson to help you gain insight on how to fully engage students and effectively teach the material, PowerPoint Presentations to help you discuss new tasks and vocabulary terms covered in each lesson, Sample syllabus to help you design your course from beginning to end.

Meet the Author

Author Bio

Kenneth C. Louden

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

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 a new introductory Python textbook