[plt-scheme] Has anyone read the book 'Concepts, Techniques, and Models of Computer Programming'?

From: Mark Engelberg (mark.engelberg at gmail.com)
Date: Mon Feb 4 18:05:41 EST 2008

I have read it, and found it to be delightful.  It is my favorite "survey of
programming paradigms" textbook.  I feel like I'm relatively knowledgable
about these topics, and I still learned quite a bit.

Things that stood out to me (keeping in mind it's been a few years since
I've read it):
1. Really drives home the philosophy that programming languages should be
designed in layers, where you can write most of your code in a layer that is
easy to understand, but perhaps somewhat limited (e.g., functional
programming), using other layers as needed when the extra expressiveness is
truly necessary (e.g., stateful programming).
2. A running theme is that a designer of programming languages should create
these layers by adding the minimum features necessary at the kernel language
level to gain new expressiveness (I think they actually quoted Matthias on
this language design principle).  Then, once certain ways of using the new
features becomes standard, add the necessary syntactic sugar to the language
to support that way of doing things.
3. I've never used a language based around so-called logic variables.  I
found it really fascinating to see all the clever ways they can be used.
That whole aspect of Mozart was new to me.
4. Great discussion of several different types of concurrency.  Interesting
discussion about how concurrency and state are connected in terms of what
they can express.
5. Nice comparison of OO vs. more functional ways of doing ADTs.
6. Overview of distributed programming (I wish this part were more in-depth,
but I liked what content was there).
7. Good illustration of declarative-style GUI programming.  Interestingly,
GUI frameworks have converged on this style since when I read the book
(Silverlight, Flex, Laszlo), so now it's not such a novel idea to me.
8. I love the way Mozart does records.
9. I liked the brief explanation of how computation spaces can be used to do
deduction/backtracking programs.  It got me interested enough to read other
articles and books on the subject.


On Feb 4, 2008 7:47 AM, Grant Rettke <grettke at acm.org> wrote:

> Has anyone read the book 'Concepts, Techniques, and Models of Computer
> Programming' by
> Peter Van Roy and Seif Haridi?
> What is your take on it?
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20080204/f134cf89/attachment.html>

Posted on the users mailing list.