or
Sign in to turn on 1-Click ordering.
or
Amazon Prime free trial required. Sign up when you check out. Learn more
More Buying Choices
Have one to sell? Sell yours here
or
Get a £16.50 Amazon.co.uk Gift Card
Concepts, Techniques, and Models of Computer Programming
 
 
Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

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

Peter Van Van Roy , Seif Haridi
5.0 out of 5 stars  See all reviews (2 customer reviews)
RRP: £44.95
Price: £44.05 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £0.90 (2%)
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
In stock.
Dispatched from and sold by Amazon.co.uk. Gift-wrap available.
Only 10 left in stock--order soon (more on the way).
Want guaranteed delivery by Thursday, June 7? Choose Express delivery at checkout. See Details
Trade In this Item for up to £16.50
Get an extra £5 when you trade in books worth £10 or more until June 30, 2012. Trade in Concepts, Techniques, and Models of Computer Programming for an Amazon.co.uk gift card of up to £16.50, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Find more products eligible for trade-in.

Frequently Bought Together

Concepts, Techniques, and Models of Computer Programming + Artificial Intelligence: International Version: A Modern Approach + Modern Operating Systems: International Version
Price For All Three: £143.10

Show availability and delivery details

Buy the selected items together


Product details

  • Hardcover: 904 pages
  • Publisher: MIT Press (5 Mar 2004)
  • Language English
  • ISBN-10: 0262220695
  • ISBN-13: 978-0262220699
  • Product Dimensions: 2.6 x 2 x 0.5 cm
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (2 customer reviews)
  • Amazon Bestsellers Rank: 416,033 in Books (See Top 100 in Books)

More About the Author

Peter Van-Roy
Discover books, learn about writers, and more.

Visit Amazon's Peter Van-Roy Page

Product Description

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."

Product Description

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.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Suggested Tags from Similar Products

 (What's this?)
Be the first one to add a relevant tag (keyword that's strongly related to this product)
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more


Customer Reviews

4 star
0
3 star
0
2 star
0
1 star
0
Most Helpful Customer Reviews
18 of 18 people found the following review helpful
An Important Book 23 Mar 2004
Format:Hardcover
In the 1970s the classic "Algorithms + Data Structures = Programs" helped popularise procedural programming. In the 1980s we had "Structure and Interpretation of Computer Programs" which helped awareness of functional programming but was originally aimed primarily at Engineering Students rather than those studying Computational Science. The 1990s saw the rise of Object Orientation alongside books like "Design Patterns".

We now have "Concepts, Techniques and Models of Computer Programming". This is an important book. The authors have attempted to distill the underlying relationships between computing's "big ideas" into a coherent whole and have largely succeeded. As a result, this is a book that needs to be widely adopted in CS Education, if only to show that Java and C++ are not the only way to program. This is especially important considering that there are ideas such as "dataflow", "logic variables" and the disciplined handling of state which the former languages lack.

Experienced programmers would also benefit from the ideas contained within this book. At first glance the Oz language appears to differ quite radically, but these are only surface quirks. The real differences are in the capabilities of the language, and these reward exploration.

These comments are primarily based upon the reading of a draft copy of the book that the author's made available on the Web prior to final publication. I now have the print edition which if anything strengthens my opinions.

Recommended.
Comment | 
Was this review helpful to you?
1 of 1 people found the following review helpful
Format:Hardcover
Many people talk understand "multi-paradigm" programming languages as a mixture of syntax hacks to make happy programmers from all kinds. This builds the roots of most programming paradigms departing from an initial declarative approach, making clear how they play together, what can be done in ones that can't be done in others, mixed with some programming and program design, algorithm analysis, etc. Definitely an eye-opener book that I recommend to anyone interested in understanding programming as whole without prejudices from "paradigm" sellers.
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com:  9 reviews
81 of 81 people found the following review helpful
Will change how you think about program design completely 23 Mar 2004
By ROBERT B CALCO - Published on Amazon.com
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.

Mozart-Oz, the underlying technology, is a strange language when you first look at it. It's hard at first to get used to concepts like "higher-order programming" or "by need execution" or "lazy execution" if you are the programming grunt in the field of most modern IT shops, forced by bosses to code in your standard fare -- Java, C#, VB, etc. If OO in Java is like the hammer that makes everything look like a nail, in Mozart-Oz you have a language that is like walking into Ace hardware store, a swiss army knife of a language (conceptually speaking) that challenges you to become a highly skill code craftsman, not just a programmer.

But, if only for the personal growth you will experience grappling with the concepts in this book, I recommend it very highly even to "non academic" programmers (like myself) as well as to any advanced student of computer science. It may be painful, you may scratch your head in places where the concepts just seemed to leap over your cranium, but if you are patient, do the exercises (and at least think about what it would take to tackle some of the research projects), you will grow.

Unfortunately, you may find the languages you work on to be rather confining, and maybe even boring, after you get a whiff of what multi-paradigm programming can do. More likely, however, is that you will grasp very clearly how the language you code in today works, and that can only make you a better software engineer. So do it-buy this book!

36 of 36 people found the following review helpful
Integrated view of programming 23 Oct 2005
By A. McInnes - Published on Amazon.com
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.
33 of 37 people found the following review helpful
The Power of Programming Without Dogmatic Restraints 3 Mar 2004
By Juris Reinfelds - Published on Amazon.com
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.

Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!


Look for similar items by category


Look for similar items by subject


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges