Programming Books C Java PHP Python Learn more Browse Programming Books
Sell yours for a Gift Card
We'll buy it for $2.00
Learn More
Trade in now
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Programming Languages: Concepts and Constructs (2nd Edition) Paperback – January 7, 1996

ISBN-13: 978-0201590654 ISBN-10: 0201590654 Edition: 2nd

7 New from $69.46 45 Used from $0.35 1 Collectible from $99.96
Amazon Price New from Used from
Hardcover, Import
"Please retry"
$0.01
Paperback
"Please retry"
$69.46 $0.35

There is a newer edition of this item:

Year-End%20Deals%20in%20Books
NO_CONTENT_IN_FEATURE

Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now

Product Details

  • Paperback: 624 pages
  • Publisher: Addison-Wesley; 2 edition (January 7, 1996)
  • Language: English
  • ISBN-10: 0201590654
  • ISBN-13: 978-0201590654
  • Product Dimensions: 7.3 x 1.3 x 9 inches
  • Shipping Weight: 2.3 pounds
  • Average Customer Review: 2.2 out of 5 stars  See all reviews (19 customer reviews)
  • Amazon Best Sellers Rank: #134,793 in Books (See Top 100 in Books)

Editorial Reviews

From the Back Cover

Programming Languages: Concepts and Constructs, Second Edition retains the "character" of the original, emphasizing concepts and how they work together. This classic book has been thoroughly revised to provide readable coverage of the major programming paradigms. Dr. Sethi's treatment of the core concepts of imperative programming in languages like Pascal and C flows smoothly into object-oriented programming in C++ and Smalltalk. The charm of functional languages is illustrated by programs in standard ML and the Scheme dialect of Lisp. Logic programming is introduced using Prolog.

Novices, who have been introduced to programming in some language, will learn from this book how related concepts work together while designers and implementers willp be exposed to the major programming paradigms.

Example programs from the book are available as source code. These are available by anonymous ftp at ftp://ftp.aw.com/cseng/authors/sethi/pl2e.



0201590654B04062001

About the Author

About Ravi Sethi

Ravi Sethi, director of Computing Science Research, has been at AT&T Bell Laboratories in Murray Hill, New Jersey since 1976. He has held teaching positions at Pennsylvania State university and the University of Arizona, and has taught at Princeton University and Rutgers. Dr. Sethi is co-author of the "dragon book", Compilers: Principles, Techniques and Tools and has written numerous articles. His books have been translated in Japanese, German, French, Italian, Spanish, and Korean.



0201590654AB04062001


More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

The author seems to concentrate on using big words and never reaching the point of his explanations.
Mike Scopafica
If you want to learn this material, read Programming Language Pragmatics by Michael L. Scott instead--it's far better!
BlackMateria
Ravi has struck the very rare balance of creating a book that is unsatisfying to virtually all readers.
ravidisliker

Most Helpful Customer Reviews

13 of 13 people found the following review helpful By Mark R. Ackerman on January 20, 2005
Format: Paperback
I hated this book when it was the assigned text in my programming languages course. But having just graduated with a BS in CS, I went back and looked thru this book after seeing the negative reviews here. After taking courses like compiler and multi-threaded programming, I feel the book does an excellent job of showing how programming languages evolved, and why. Some of the examples are a little abstract(i agree that the quilt example is too hard to follow, and is spread over too many pages), but for a book that is trying to show the reasons languages evolved it does a good job.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
10 of 12 people found the following review helpful By Avinash Meetoo on April 18, 2006
Format: Paperback
Most of the previous comments are either very favourable to the book (i.e. 4 or 5 stars) or completely against it (1 star).

According to me, this book is a fantastic book IF YOU LIKE PROGRAMMING LANGUAGES. These are the languages I use (from time to time) on my Linux box: AWK, Scheme, LISP, C/C++, Java, Python and Ruby. I'm also trying to understand AspectJ, Oz and Erlang. I think this book is made for persons like me who find pleasure discovering and using new programming languages (and paradigms).

I can understand that if you are a professional programmer (i.e. doing it for a living), this book is of (relatively) little value.

Personally, I love this book!
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
8 of 10 people found the following review helpful By meerkat on May 14, 2001
Format: Paperback
OK, so it has a stupid bear on the cover, but as far as methodical organization it actually falls in mid to upper range for books on this topic. I think it is quite reasonable as far as content, clarity, and organization. It is not overly chatty but friendly and less dry than most. It does not shy away from defining terms which some books do. The previous reviews are shockingly harsh. There is an opening for a concise easy to read book in this area and I think this book is a reasonable start.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
2 of 3 people found the following review helpful By Caterpillar Jones on November 29, 2001
Format: Paperback
I have lived with this book on my shelf for five years, and during that time have gone back to it a number of times, though I have never read it all the way through for reasons the other reviews will surely explain. I have gone back to it because it is wide ranging and the languages it picks are interesting.
Reading it is like having a row of pearls in front of you. Each is clear and self contained, and they are arranged like a necklace would be. The thread between the sentences is missing however, and you have to work hard to supply it yourself.
Some of the examples (e.g. the quilt example in the functional programming section) elucidate the nature of the programming style and this is good. When moving into the specifics of a language however, the pearl trick happens and I don't get what I am looking for. When reading a book like this I want to garner the spirit of a language. If I want syntax I download a language reference.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
By Trixy T on October 16, 2012
Format: Paperback Verified Purchase
The book arrived in time and was very affordable for a textbook. The only thing about this book is the binding was a little worn out but it was a great price. Thanks!
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback
I have written reviews on compiler books, and this text was mentioned in one of them. Having a copy, I decided I'd review it.

From a compiler writer's point of view, this book is helpful if you need to choose a paradigm for your programming language. If you don't know about the different paradigms, then the book will be even more useful. It covers a lot of topics related to compilers, including abstract syntax trees, tokens and spelling, grammars (inc. context free grammars), language derivations, ambiguities, BNF, and syntax charts.

In terms of programming in general, the following topics are well-covered: structured programs, data types, type checking, recursive types & functions, records, variant records, sets, procedures, functions, parameter passing, scope (both lexical and dynamic), call-by-value vs call-by-reference (and even call-by-value-result), variable declarations, activation records, the stack, and heap memory management. Many of these topics are useful, if not required, for writing a compiler of your own.

Most of the code snippets in the book are written in either Pascal, or C. This was ideal for me because they were the first two languages taught in my comp sci Degree. But not long afterwards, object-oriented programming became popular, and so the languages taught now have changed to OOP ones. If you're learning an OOP language first, you will have to skip past 200 pages before the book starts to cover this paradigm. Not to say that the early pages are wasted, but it'll be a while before the book gets to the point. There's an early introduction to machine language and then assembly language. After learning of these, you will get a better appreciation of the abstractions in modern programming paradigms.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback
This book covers procedural (C and Pascal), object-oriented (C++ and Smalltalk), functional (ML and Scheme), and logic (Prolog) programming. It covers not only the ideas involved with writing programs in these languages, but also deals with some aspects of implementing compilers (attribute grammars and typing) and interpreters. At the end of the book, the chapter on lambda calculus prepares the reader for advanced material on type checking.

The one aspect of the book that doesn't stand the test of time is the material on concurrent programming, which uses Ada. These days, it would probably be better to cover concurrent programming using Java or C++ with OpenMP or Threaded Building Blocks instead. This material is more important than ever with the near ubiquity of multicore processors.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

What Other Items Do Customers Buy After Viewing This Item?