AnyBook4Less.com | Order from a Major Online Bookstore |
![]() |
Home |  Store List |  FAQ |  Contact Us |   | ||
Ultimate Book Price Comparison Engine Save Your Time And Money |
![]() |
Title: Concepts of Programming Languages (5th Edition) by Robert W. Sebesta ISBN: 0-201-75295-6 Publisher: Pearson Addison Wesley Pub. Date: 31 July, 2001 Format: Hardcover Volumes: 1 List Price(USD): $109.00 |
Average Customer Rating: 3.46 (13 reviews)
Rating: 3
Summary: Good, but I wish it covered more language theory
Comment: This book was good for my undergrad programming-languages class, but it didn't help us in our study of attribute grammers, nor was the explanation and examples of BNF and EBNF as extensive as they could have been. Also I was dissapointed the examples as they were all very simple (see Chapter 3's section on Denotational Semantics).
It is true that it says some silly stuff about Java - but that seems to be pretty typical of most text books these days.
Rating: 5
Summary: Great for students, essential for professionals
Comment: Concepts of Programming Languages by Robert W. Sebesta, Sixth edition is truly a well-written book. Perhaps one of the best books written on this topic. Sebesta has done an exceptional job conveying the topic to the reader, making a complex topic both easy to read and understand. This textbook is good for any college student or professional trying to get a feel of how the most popular programming languages have evolved in the past 4 decades, and what sets these languages apart. Topics in this book range from Zuse's Plankalkul (the first programming language) to how Exception Handling is done in Java and Logic Programming and everything in between. Interviews with some of the pioneers of our time such as James Gosling (the creator of Java) and Bjarne Stroustrup (the designer of C++), and side "History Notes" represent some of the "fun" readings the author has added to this book. Each chapter ends with a brief but concise summary followed by problem sets that assess the important topics covered in the chapter.
Even though this book is targeted for a junior-level programming course, some of the topics are well worth the reading for an advanced programmer or a graduate student. The author starts by giving the reasons behind why such topic needs to be studied:
·To increase capacity to express ideas - the depth at which we can program, just like the way we think, is highly influenced by the expressive power of the language in which we communicate our thoughts.
·Improved background for choosing appropriate language - if you know more about programming languages, you have a better idea what to choose when development time comes.
·Increased Ability to learn new languages - continuous learning in the field of software engineering is very much essential. If one knows the concepts of one programming language, applying those concepts to other language to learn or understand become much simpler and easier.
·Better understanding of the significance of implementation - Someone who knows the implementation details of that language can only fix some programming bugs.
·Overall advancement of computing - For better decisions to be made going forward with computing and software development, one needs to learn from some of the mistakes that gotten us where we are. Things to do or not to do in this relatively new science.
The author starts by giving a very descriptive background on programming languages, starting from Zuse's Plankalkul, the first programming language. Zuse's defined the Plankalkul and wrote many algorithms in the language for a variety of problems. Even thought it was never implemented, Plankalkul paved the way for other programming languages that would follow it. Fortran, LISP, ALGOL 60, COBOL, BASIC and other high-level programming languages would follow over the years and evolve. The author gives the history behind each language, and goes in to a detail description of how each language evolved over the years. Even though chapter 2 gives the background behind most programming languages, the book only covers the most popular and widely used programming languages thereafter, mainly Fortran, C/C++, Ada and Java.
If your goal is not to teach or learn the details of compilers and/or compiler design, chapter 3 and 4 are defiantly for you. There are many books written on compilers, but Sebesta in one chapter covers the main topics of syntax and semantics and in another covers lexical and syntax analysis. Lexical analysis talks about small-scale language constructs, such as names and numeric literals. Syntax analysis deals with the large-scale constructs, such as expressions, statements, and program units. In less than a hundred pages of text, the author explains the background, theory and implementation of syntax and lexical representation and analysis. It wets the reader's appetite enough that if the reader is interested, he or she can follow the course by taking a compiler design course or read the popular Compilers book by A. V. Aho for example.
The author proceeds to talk about naming, binding, type checking and scopes. Various constructs from different programming languages make up this section, with an emphasis on storage binding and variable lifetime. Various storage types (such as static, stack-dynamic variables and heap-dynamic variables) and their corresponding lifetimes along with their implementation in each language are also covered.
The author then goes into the "newer" topics such as Abstract Data Types (ADT's), Object Oriented Programming, Concurrency and Exception Handling. The author firsts discussed the concept of ADT's and conveys to the reader the benefits of abstraction and encapsulation thru examples programs in Ada, C++, Java and C#. The author in its closing remarks adds:
"The two primary features of abstract data types are the packaging of data objects with their associated operations and information hiding."
ADT sets up the stage for what the author talks about next: Object-Oriented Programming. As with the other chapters, the author starts off by touching on the design issues for Object-Oriented languages. The author then goes off and says:
"In this purest model of object-oriented computation, all types are classes. There is no distinction between predefined and user-defines classes"
The important topics of various object-oriented languages such as inheritance, multiple inheritance, type checking and polymorphism, allocation and deallocation of objects, dynamic and static binding are covered and their corresponding implementations are discussed in detail for each object-oriented language such as in C++.
Robert W. Sebesta has done an exceptional job depicting the topic of programming languages. The background, the history, the design issues behind each decision, the implementation of each language, the evaluation of features between the popular languages, the problem sets at the end of the chapter and last but not least, the interviews with pioneers in the computer science world, make Concepts of Programming Languages, sixth edition a great book.
Rating: 2
Summary: Semi-useful survey of programming languages
Comment: This book will not make you understand the basic ideas behind programming languages, and you won't be able to shy away from math as Sebesta's book does. For that, you will need other books.
This book, however is useful inasmuch as it provides a survey of some programming languages. However, it is heavily biased towards imperative programming languages. Even here the balance is wrong, with a lot of Ada and Pascal. IIRC, he forgets to mention Forth, which is old, but a totally different way to program than the other languages.
On the other hand, anything he has to say about any other type of paradigm will be, probably, wrong. For instance, his description of Lisp remains in the 1950s ("interpreted, everything is a list"). He entirely ignores the Common Lisp Object System, which is by far much more advanced that your staple "OOP" language. The Smalltalk environment he shows is Smalltalk-80. Meaning: the environment used *then*. His description of Functional languages is a joke. So one gets the feeling he doesn't know what he is talking about. And he doesn't.
He missed a lot of development that went on in programming language research and their implementation.
He can't get right new developments in programming except things that are mainstream. In the new edition, he approaches Java, as if garbage collection, object orientation and bytecodes were something new (Smalltalk, Common Lisp almost 20 decades ago). If he's missed all that, let's not even begin to talk about the very new breed, like fast-compiling functional languages (Clean, OCaml), languages that allow reflection and metaprogramming (e.g., Maude), languages built for distributed programming (Oz, Erlang), etc.
If you buy this book, it should be only for the value of having a rather general, limited, historical overview of some programming languages. If you really want to learn about the ideas behind a programming language, you should read Structure and Interpretation of Computer Programs (the classic, now updated), and Concepts, Techniques, and Models of Computer Programming (the "new" classic).
![]() |
Title: Operating System Concepts by Abraham Silberschatz, Greg Gagne, Peter Baer Galvin ISBN: 0471250600 Publisher: Wiley Text Books Pub. Date: 08 March, 2002 List Price(USD): $95.95 |
![]() |
Title: Computer Organization and Design Second Edition : The Hardware/Software Interface by David Patterson, John Hennessy ISBN: 1558604286 Publisher: Morgan Kaufmann Pub. Date: 01 August, 1997 List Price(USD): $84.95 |
![]() |
Title: Introduction to the Theory of Computation by Michael Sipser ISBN: 053494728X Publisher: Brooks Cole Pub. Date: 13 December, 1996 List Price(USD): $103.95 |
![]() |
Title: Software Engineering (6th Edition) by Ian Sommerville ISBN: 020139815X Publisher: Addison-Wesley Pub Co Pub. Date: 11 August, 2000 List Price(USD): $106.00 |
![]() |
Title: Introduction to Algorithms, Second Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein ISBN: 0262032937 Publisher: MIT Press Pub. Date: 01 September, 2001 List Price(USD): $79.95 |
Thank you for visiting www.AnyBook4Less.com and enjoy your savings!
Copyright� 2001-2021 Send your comments