Programming Books C Java PHP Python Learn more Browse Programming Books

Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 


or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $23.53 Gift Card
Trade in
Kindle Edition
Read instantly on your iPad, PC, Mac, Android tablet or Kindle Fire
Buy Price: $59.99
Rent From: $22.94
 
 
   
More Buying Choices
Have one to sell? Sell yours here

Concepts, Techniques, and Models of Computer Programming [Hardcover]

by Peter Van Roy, Seif Haridi
4.3 out of 5 stars  See all reviews (10 customer reviews)

List Price: $78.00
Price: $67.09 & FREE Shipping. Details
You Save: $10.91 (14%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 12 left in stock (more on the way).
Ships from and sold by Amazon.com. Gift-wrap available.
Want it Monday, April 28? Choose Two-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition
Rent from
$59.99
$22.94
 
Hardcover $67.09  
Paperback --  
Sell Us Your Books
Get up to 80% back when you sell us your books, even if you didn't buy them at Amazon. Learn more

Book Description

February 20, 2004 0262220695 978-0262220699

This innovative text presents computer programming as a unified discipline in a way that is both practical and scientifically sound. The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together.After an introduction to programming concepts, the book presents both well-known and lesser-known computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, message-passing concurrency, explicit state, object-oriented programming, shared-state concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language -- a simple core language that consists of a small number of programmer- significant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment.


Frequently Bought Together

Concepts, Techniques, and Models of Computer Programming + Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) + Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition
Price for all three: $127.50

Some of these items ship sooner than the others.

Buy the selected items together


Editorial Reviews

Review

"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



"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 aprogramming 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, BerkeleyPlease note: This is the full endorsement text, to be used if possible in publicity and promotional materials. For the book cover, and in places where a shorter version is needed, please use the following: "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."

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.


Product Details

  • Hardcover: 936 pages
  • Publisher: The MIT Press (February 20, 2004)
  • Language: English
  • ISBN-10: 0262220695
  • ISBN-13: 978-0262220699
  • Product Dimensions: 10.2 x 7.9 x 2 inches
  • Shipping Weight: 4.4 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (10 customer reviews)
  • Amazon Best Sellers Rank: #58,806 in Books (See Top 100 in Books)

More About the Author

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

Customer Reviews

Most Helpful Customer Reviews
101 of 103 people found the following review helpful
Format:Hardcover
This book is a real mind-bender that illuminates paths for computer design at both the conceptual and practical levels I'd never travelled down before.
The notion that one language can be so flexible as to accomodate both the syntax and semantics of so many different computational models, or paradigms, took some unlearning of bad programming practice before its power, elegance and potential began to sink in.
It also explodes the myth that "pure" languages -- i.e., pure OO, or pure functional, etc., languages--have some kind of innate advantage over so-called "hybrid" languages. In fact, "hybrid" (or as the authors would prefer to call them, "multi-paradigm") languages come out of this book looking even more powerful than the "pure" ones, insofar as they allow the programmer to use the right model for each task, instead of trying to make OO fit, for instance, in places where it doesn't fit so well.
The idea here is that each computational model represents a completely different way of approaching a domain problem. Used by themselves, each has its niche. For instance, everybody knows OO is good for domain modelling and busines objects. Prolog-type languages are good for applications that need to apply rules over a set of data. Functional languages are great in mathematical applications. And so on. What is new here is that one can program in an environment in which all of these tools are available in a single core semantics that seamlessly weaves these computational models into a complementary whole. Used together judiciously, with an eye toward program correctness, they make things possible that have long been considered very hard -- for instance, constraint programming.
Read more ›
Was this review helpful to you?
48 of 48 people found the following review helpful
5.0 out of 5 stars Integrated view of programming October 22, 2005
Format:Hardcover
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.
Comment | 
Was this review helpful to you?
41 of 45 people found the following review helpful
Format:Hardcover
In 1976 Edsger W. Dijkstra elevated programming to an intellectual discipline and taught us how to reason about what we now call "imperative programming". To illustrate his methodology Dijkstra solved challenging problems with unforgetably beautiful, yet simple and powerful example programs that are as relevant today as they were forty years ago. Since then, programming has splintered into paradigms, methodologies and suffers from baroqueness, perpetuation of obsolete conventions and other practices that restrict the full expressive power of programming "as a whole".
In 2004 Van Roy and Seif Haridi have given us a glimpse of what programming can be like without unnecessary restrictions imposed by paradigms and other heavy baggage caused by politics, ideology and historical inertia. Using the remarkably mature implementation of the Mozart system and the conceptually clean, simple, elegant, yet powerful programming language Oz, Van Roy and Haridi show us how dogmatic heavy baggage falls away when we can look at programming as a whole and choose the best programming concepts that the solution of a problem requires. Such a program becomes simpler, more elegant and therefore less error prone than an equivalent solution that is restricted to a specific paradigm.
Comment | 
Was this review helpful to you?
14 of 14 people found the following review helpful
Format:Hardcover
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.
Read more ›
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Oz-centric but interesting
Peter Van Roy has an agenda; it's something like a universal, orthogonal language for discussing the programming paradigms landscape. Read more
Published 13 months ago by Johnicholas Hines
5.0 out of 5 stars A must read
I can not rate this high enough. This is one of the best books on programming I have ever read.

It uses a language called Oz, which, while a very powerful language, will... Read more
Published on December 31, 2011 by EdK
5.0 out of 5 stars An eye opener, even when I thought I knew it all
I love this book so much, I'm buying it again. After having spent years reading it on and off, and working every problem, I've managed to wear out the spine. Read more
Published on August 22, 2011 by Lyle Kopnicky
3.0 out of 5 stars 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. Read more
Published on August 13, 2009 by D. Nalepa
1.0 out of 5 stars 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... Read more
Published on September 12, 2008 by Vladimir Sarertnoc
5.0 out of 5 stars 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... Read more
Published on February 12, 2008 by K. Durocher
Search Customer Reviews
Only search this product's reviews
ARRAY(0xa5fd554c)

What Other Items Do Customers Buy After Viewing This Item?


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 



Look for Similar Items by Category