by Addison Wesley
| 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
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.
* - See Amazon
Product Page for shipping and pricing details.
Book Subjects
- Programming languages
- Computers
- Computers - Languages / Programming
- Computer Books: Languages
- Programming Languages - General
- Computers / Programming Languages / General
- Programming languages (Electronic computers)