|
|
 |
 |
|
 |
|
Computer Book Store > Computer books beginning with C
|
Concepts, Techniques, and Models of Computer Programming |
Author: Peter Van Roy
Published: 2004-03-01 |
List price: $73.00
Our price: $57.49
|
Usually ships in 24 hours
As of: September 09th, 2010 05:08:10 AM
|
|
|
Customer comments on this selection.
An enriching read about program design and language features Ever wondered why it takes so long to pick up your first programming language, when it's C++ or Java? Ever wondered why Object-oriented Programming feels so difficult to get right, even after years of experience?
This books is an amazing study of various programming paradigms (or models, as the authors call them). It starts with the most minimal features required in a programming language, discusses their impact on how you write small programs and then moves on to bigger concepts.
Until you've read this book, you might not realise that multi-threaded object-oriented programming is such a powerful model that it can be used to easily write a lot of real-world applications but this power also makes it tough to master the model because of the many ways you can abuse it. The more powerful a model gets, the more difficult it becomes to verify its correctness without additional tools like debuggers, profilers, etc.
Most importantly, this book can teach you two important things:
* Multi-paradigm programming is more natural (i.e. easier to understand and model real-world concepts in) than 'pure' programming
* Use the least powerful model that can solve the problem at hand naturally (i.e. you don't end up writing a lot of code to work around the model's limitations)
A third thing that they don't enumerate but imply quite obviously is a program design methodology that involves writing large parts of the application using a less powerful and more deterministic model, while harnessing the power of more capable models only for those few components of the application that absolutely need them.
The popular "shared-nothing" architecture for web applications, backed by a concurrent shared-state store (RDBMS, mostly) is one example of such an approach.
The only shortcomings of this book that I found were the rather difficult installation of Mozart programming environment used to illustrate the book's concepts, and IMHO a shortage of sample problems that illustrated the usage of more advanced models.
Becoming Outdated I've had a course w/Abelson's textbook (see ed. review). So this one was for "fun". I've just started so, perhaps I'll finish and have something more positive to say. After the first chapter I DO have some comments. My PC runs MS Vista. This book relies heavily on (and is intertwined with) the Mozart platform for the OZ programming language. Go to the Mozart.org website and you'll find that the brand spankin "new" version 1.4.0 doesn't run on Vista. The site appears to be litle used and a year old (Ver. 1.4 was introduced July '08). So you have to load an earlier version. Install it. Whoops! It doesn't run. You need to install emacs (emacs? I'll try to repress my sneer. I used emacs. emacs, especially under a unix or command line environment is great - of course that was 20 years ago) Its improved since then, and with a bow to the fanatics who will swear by it, it is great, once you learn all of the control key combinations. Otherwise it is a distraction from learning the concepts you bought the book to learn. The Mozart site references an out of date version. Go to the emacs site and get the latest. So, install emacs 23.1 (as of 8/13/2009). Mozart still won't run. You have to go to My computer - Properties - Advanced Settings - and create a new system variable "OZEMACS" with a value of the path & executable. For instance, I set my emacs up under C:\Program Files [...] There are two choices for executables [...] Some site or another I visited called for runemacs. So I used that. Your milage may vary. I shortened the folder name that emacs created upon installation and moved the whole thing also. (BTW the location of the advanced Tab is for Vista Home Premium svc pk 2 and is approximately correct - but I'm relying on memory so it may not be an exact match to whats on the screen. In windows explorer I right clicked then chose properties then on the left chose advanced something or other). I think there are several tabs to chose from. Hopefully above info is enuff. [...] has instructions for XP which seem to work also for Vista. (except for the XEmacs stuff) Since the program is critical for getting much out of the book, the fact that it took me several hours to set this up is inexcusable. The language, I conclude is losing support and will die the death most languages do. Since the book is so intertwined with the language and the Compiler platform, you can't review one without the other.
Vista has been out too long for it not to be fully supported - at least with detailed instructions how to install on it. By the way it is not IMHO a good idea to be manually adding system variables. make a note to expunge it once you finish with Oz.
So just the hassle (yeah I'm that old) of the installation was a two star knock down. Chapter one seems quite confused. It starts out with a little bit of recursion. Why, I don't know. The authors do say Ch 1 is a taste of things to come, but the level of presentation is 1st year stuff, so far. Way too much about Oz lists without any obvious reason why. The review that said the presentation was slow is correct. But for a 2nd year text book, perhaps that was what was intended. (BTW the claim that {Browse x} doesn't work in Vista is wrong - I tried it and it seems to, but I didn't do anything complicated yet - using {Show x}instead is a pain.) I'm still looking forward to lerning a bit bout some of the language paradigms that I was not exposed to way back when. And it could be that this level of presentation is "my speed" - If I really like the book ultimately I'll come back and update this review.
This is the worst book I've ever read This book is the worst book that I've ever read on computer programming. Although I appreciate the concepts presented in the book, when you try to read the examples, you will end up in an infinite loop rereading the text because the book is very wordy and the algorithms aren't explained in simple plain English.
The diagrams are misplaced. They are placed at the start of a previous page instead of the current page.
The book is paced in such a way that you need to have taken a course on Automata Theory and Operating Systems.
If you want to suffer in a Computer Programming Languages class, DON'T BUY THIS BOOK.
The authors should have used simple examples to demonstrate the paradigms of computer programming but the examples they presented requires you to become an M.S. Computer Science student first.
The codes doesn't make sense.
Relying help from a friend is the best way than to read this thick, intricate book.
Fantastic book, a more in-depth SICP This book is fantastic! It's like a more "fleshed out" version of Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science). It uses a neat (if somewhat weird) language called Oz, which has a number of interesting features, which are used to demonstrate the concepts of the book. Much like SICP, this book is a real masterpiece, elegantly composed and explained.
Integrated view of programming Modern programming has become fragmented into a variety of computational models (OO, functional, imperative, etc), and a variety of languages supporting those computational models. Neophyte programmers are typically introduced to just one of these models, and only learn the other, "less natural" models later. With CTM, Van Roy and Haridi take an alternative approach. They teach programming as an integrated discipline, and demonstrate the underlying links between the different computational models. By the time the reader is done with the book they will have a much better understanding of the discipline of programming, and will be well-equipped to decide which model is best suited to the task at hand. Reading CTM is an extremely worthwhile experience for anyone wishing to achieve a deep understanding of the art and science of programming.
CTM has been compared to Abelson and Sussman's "Structure and Interpretation of Computer Programs". They are similar, in the sense that they both provide the reader with a deeper understanding of programming than most programming texts. However, the content of both books is quite different, and it is definitely worth reading both.
Another book that I feel makes a good companion to CTM is Hoare's (sadly hard to come by) "Unifying Theories of Programming". It covers a lot of the same material as CTM, but in a much more theoretical sense. Where CTM is concerned with practical programming, Hoare is concerned with mathematical underpinnings. The two complement each other nicely.
|
Similar Listings
|
|
Our Computer book picks:
|
|
Search the Computer Products Store
LCS Amazon Store 3.0 © 2010
|
|
|
|
|
|
|