Higher Education


Programming Languages : Principles and Practices

Author(s): Kenneth A. Lambert | Kenneth C. Louden

ISBN: 9788131516683

Edition: 3rd

© Year : 2012


Binding: Paperback

Pages: 672

Trim Size : 241 x 181 mm

Refer Book

Order Inspection Copy

'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
'1.NEW! Earlier exposure to programming languages and paradigms, allowing students to become aware of their power and their limitations. 2.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. 3.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. 4.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. 5.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). 6.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++. 7.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. 8.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. 9.Overview of the history of programming languages, and introduces the idea of abstraction and the concept of different language paradigms. 10.Overview of language design criteria. 11.Address three major language paradigms. 12.Covers syntax in some detail, including the use of BNF, EBNF, and syntax diagrams. 13.Covers the central semantic issues of programming languages. 14.Overview of modules and abstract data types, including language mechanisms for equational, or algebraic, specification. 15.Introduces the three principal methods of formal semantics: operational, denotational, and axiomatic. 16.The major ways parallelism has been introduced into programming languages.
'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.Bibliography.
'Kenneth C. Louden: San Jose State University Kenneth A. Lambert : Washington and Lee University