- Series: MIT Press
- Hardcover: 936 pages
- Publisher: The MIT Press; 1st Edition edition (February 20, 2004)
- Language: English
- ISBN-10: 0262220695
- ISBN-13: 978-0262220699
- Product Dimensions: 8 x 0.6 x 10 inches
- Shipping Weight: 4.4 pounds (View shipping rates and policies)
- Average Customer Review: 14 customer reviews
- Amazon Best Sellers Rank: #257,542 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Concepts, Techniques, and Models of Computer Programming (MIT Press) 1st Edition Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
This book follows in the fine tradition of Abelson/Sussman and Kamin's book on interpreters, but goes well beyond them, covering functional and Smalltalk-like languages as well as more advanced concepts in concurrent programming, distributed programming, and some of the finer points of C++ and Java.(Peter Norvig, Google Inc.)
In almost 20 years since Abelson and Sussman revolutionized the teaching of computer science with their Structure and Interpretation of Computer Programs, this is the first book I've seen that focuses on big ideas and multiple paradigms, as SICP does, but chooses a very different core model (declarative programming). I wouldn't have made all the choices Van Roy and Haridi have made, but I learned a lot from reading this book, and I hope it gets a wide audience.(Brian Harvey, Lecturer, Computer Science Division, University of California, Berkeley)
From the Inside Flap
"This is a fascinating book. It's been almost 20 years since Abelson and Sussman revolutionized the teaching of computer science with their Structure and Interpretation of Computer Programs. In all that time, there have been several books (some of them quite good) following SICP's ideas pretty closely, and of course many books following the old pedagogy in which the details of a programming language are the focus, with few deep ideas. But this is the first book I've seen that focuses on big ideas and multiple paradigms, as SICP does, but chooses a very different core model (declarative programming)the first real intellectual competition to Abelson and Sussman. I wouldn't have made all the choices Van Roy and Haridi have made, but I learned a lot from reading this book, and I hope it gets a wide audience." --Brian Harvey, Lecturer, Computer Science Division, University of California, Berkeley
"This book follows in the fine tradition of Abelson/Sussman and Kamin's book on interpreters, but goes well beyond them, covering functional and Smalltalk-like languages as well as more advanced concepts in concurrent programming, distributed programming, and some of the finer points of C++ and Java." --Peter Norvig, Google Inc.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Before I read this book, I had already been blown away by Scheme, C++, ML, and Haskell. I had studied Java, C#, Ruby, Perl, and a smattering of Lisp, Prolog, Erlang, and historical languages. I thought I knew just about everything about programming languages, and just wanted to learn more about constraint programming. But I found that every chapter of this book, even the ones on paradigms I thought I knew well, was fascinating.
Much of the book is concerned with dataflow programming, which is a refreshing and clever addition to functional programming that works very well with concurrency. I learned a lot about different forms of concurrency, and the tradeoffs between analyzability and expressiveness. The exercises on transactions were illuminating, and relational (logic) programming suddenly makes a lot more sense.
My only regret is that the chapter on constraint programming is a bare introduction. After the thorough coverage of other topics, I was left wanting to know more.
I will also point out that some of the code is a bit terse, doing a little too much in too little space, with too-simple variable names, often single letters. I suspect this may have been done to fit code samples on the page. I'd like to see longer, more clearly explained versions posted on the web site. The authors were ambitions with the scope of the book, so it's hard to imagine cramming in even more careful explanations. The reader will be rewarded by exploring the exercises, and asking questions on the mailing list.
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.
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.
Most recent customer reviews
It uses a language called Oz, which, while a very powerful language,...Read more