Concepts of Programming Languages (8th Edition)

by Addison Wesley

$119.60
buy from amazon.com
Average Rating: * * * - -
Sales Rank:8833 (lower is better)
Price Used:$84.10
Shipping:Free Shipping on most orders over $25*
Availability:Usually ships in 24 hours
Label:Addison Wesley
Pages:752
Binding:Hardcover
Publication Date:2007-04-28
Published By:Addison Wesley
ASIN:0321493621
Category:Book

Authors

Editorial Reviews and Product Descriptions

Product Description

  Now in the Eighth Edition, Concepts of Programming Languages introduces students to the main constructs of contemporary programming languages and provides the tools necessary to critically evaluate existing and future programming languages. By presenting design issues for various language constructs, examining the design choices for these constructs in some of the most common languages, and critically comparing the design alternatives, this book gives readers a solid foundation for understanding the fundamental concepts of programming languages.

Preliminaries; Evolution of the Major Programming Languages; Describing Syntax and Semantics; Lexical and Syntax Analysis; Names, Binding, Type Checking, and Scopes; Data Types; Expressions and Assignment Statements; Statement-Level Control Structure; Subprograms; Implementing Subprograms; Abstract Data Types; Support for Object-Oriented Programming; Concurrency; Exception Handling and Event Handling; Functional Programming Languages; Logic Programming Languages.

For all readers interested in the main constructs of contemporary programming languages.

Customer Reviews

Intro to programming languages - Reviewed on 2008-06-22
* * *

This book is decent for what it is, and that is an introductory programming languages textbook. The background material on what makes languages different and how those types of languages function differently is pretty good.

Once the book gets into the survey of the different languages, the material is very shallow. I don't expect a lot, but I did expect more than simple looping and list manipulation for examples to compare the different languages.
Worthless - Reviewed on 2008-06-18
*
1 customer found this review helpful.

I have just finished my Programming Languages class that used the 8th edition of the book. My school is online so what is in the book is all I had to work with. I have not learned anything from this book. I am not a programmer but this book expects the reader to be one of not just a couple of languages but of several. While it may hold some value for the wide range of topics covered it fails to really explain the "Concepts", rather it is just an assault of programming pieces. The parts it shows you are not complete programs you could actually do something with unless you knew how to program in that language. Showing me a piece of something I don't know anything about the rest fails to teach me the "concepts". It would be better named "Exercises in Several Programming Languages".

I am a book collector and find it hard to get rid of text books. This book fails to impart $120 worth of information to the student. If you need random information about programming languages this book might be able to help, but not worth the money even for that.

Pros:
Covers a lot of material

Cons:
Index is minimal (making finding concepts difficult).
Arranged by languages rather than concepts (You know the part you needed).
Very unreadable writing style.

Suggestion:
Put it in PDF Form so that it can at least be searched since the index is horrible.
Focuses Almost Exclusively on Imperative Languages - Reviewed on 2008-04-25
* *
6 customers found this review helpful, 1 did not.

I'm highly disappointed in this book. The biggest problem with it (and it's mighty big for a book that's supposed to talk about the concepts of various programming languages) is that it focuses almost entirely on a subset of imperative languages. Almost exclusively, the descriptions and examples involve Fortran, C, C++, Java, C# and Ada. Only in the last two chapters does the author really talk about other types of programming languages and those two chapters are devoted to them. It's like they were just tacked on.

After that, the other problems with the book are relatively insignificant. First, the book is badly edited. In spots, it reads like it was mechanically translated from a foreign language. Second, an awful lot of his explanations are unnecessarily filled with pretentious-sounding multi-syllabic words. For instance, on page 183 he gives the following description of a top-down parser:

"Given a sentential form that is part of a leftmost derivation, the parser's task is to find the next sentential form in that leftmost derivation. The general form of a left sentential form is xAa (my note: that "a" is actually the letter alpha in the book), whereby our notational conventions x is a string of terminal symbols, A is a nonterminal, and a is a mixed string. Because x contains only terminals, A is the leftmost nonterminal in the sentential form, so it is the one that must be expanded to get the next sentential form in the leftmost derivation."

And finally (for my purposes here), he defines things using undefined (or merely "later-defined") terms. For instance, on page 220 he says, "stack-dynamic variables are allocated from the run-time stack." He doesn't define what a run-time stack is until page 433 and that definition is: "This stack is part of the run-time system, and therefore is called the [b]run-time stack[/b]." The real kicker is he doesn't explain WHY the use of a stack is important here.

If it were just a matter of those smaller problems I have with the book, I could give it a decent rating. But, his focus in imperative languages just kicks the legs out from under the book. The best I can give it is a Not Very Good two stars out of five. A much better book is Michael L. Scott's Programming Language Pragmatics, Second Edition.
Not useful - Reviewed on 2008-03-03
*
4 customers found this review helpful.

This book is very large and covers lots of features of programming languages, giving real examples. However, after using it for a long time (I used a few different editions) I still feel that it's not really useful.

Sebesta does not get into the theoretical part of programming language design, so the book does not help you with designing new languages. His comments on language features are also not very interesting.

He does not teach you how to write an interpreter or compiler, so the book is not a language implementation one.

And finally, the book can't be used to properly compare languages, because to compare languages *you need to write programs in them*, and not just read a catalog of features.

So, the book is useless. Seems like an attempt to compare languages, but done the wrong way.

By the way, the examples are not well chosen.

Instead of buying this book, I would:

- Buy one or more books on language implementation, if I wanted to implement a language, and actually write at least one compiler and one interpreter.
- If I wanted to compare languages, I'd learn three or four different paradigms. *In practice*. Very different languages. For example, Prolog, Ruby, Haskell and Erlang. Maybe Scheme or Common Lisp also. And you only "understand" a language if you develop real, non-trivial projects in it, so I would actually create tools in those languages.
- If I wanted to create a language, I would do both things mentioned before, since I wouldn't feel comfortable creating a language without ever having used different paradigms, and I would need to impolement it. I would also read articles and books on language design, type theory, computability/lambda-calculus/term rewriting, etc.
Sebesta's Programming concepts book - Reviewed on 2007-11-03
*
4 customers found this review helpful.

Truly a terrible book. I have no doubt that Robert Sebesta is an intelligent man but a talented writer he is not. I had to read more than one of his books for my undergraduate courses and I can say from personal experience that to make Sebesta's books required reading is to do a disservice to students who want to learn programming languages. For one, Sebesta believes that to define something is to give one or two sentences in jargonese and be done with it. His books, especially this one, are extremely frustrating to read, because they don't give enough examples. For any one concept he'll gloss over it with a brief jargon-drowned blurb and expect the reader to know what he's talking about. His writing style is especially difficult, because he writes like a pugilist, mechanically pounding out short, dry declarative sentences over and over. His books are dense, airless, humorless and confusing. A horrible writer who write horrible books, avoid them if at all possible.
Read More Customer Reviews »
Go To Amazon Product Page

* - See Amazon Product Page for shipping and pricing details.


Book Subjects