[Python-Dev] re: cool link

Greg Wilson gvwilson@ca.baltimore.com
Mon, 12 Feb 2001 12:14:02 -0500


> From: "Tim Peters" <tim.one@home.com>
> 
> Mentioned on c.l.py:
> 
>     http://cseng.aw.com/book/related/0,3833,0805311912+20,00.html
> 
> This is the full text of "Advanced Programming Language 
> Design", available online a chapter at a time in PDF format.

Greg Wilson:
>From the November 1998 book review column in "Doctor Dobb's Journal":

  I didn't enjoy the last two books in this month's review as much as
  the first four, but that's not necessarily the books' fault.  Finkel's
  "Advanced Programming Language Design" reminded me of a Victorian
  naturalist's description of his most recent expedition up the Orinoco.
  The book is dedicated to Finkel's father, "Who first tickled my
  interest in programming languages by announcing that he was learning a
  language that could be read and written, but not pronounced."

  I was fascinated by some of the ideas in this book, such as how
  different notions of what a 'type' is can have a profound influence on
  how easy or difficult it is to do certain things in a programming
  language, or how co-routines can be used to replace more traditional
  control structures.  Some of it, however, fell under the heading of
  "more detail than I needed" --- figuring out how to achieve the
  appearance and effect of CLU iterators in C using macros might be a
  real intellectual challenge, but that doesn't mean it's worth sharing.
  And in some parts, such as the discussion of concurrent programming, I
  got the feeling that the author's descriptions were second-hand; his
  discussion was shallower and less incisive than the earlier parts of
  the book.  While it's probably worth reading for ideas if you're
  designing a new programming language, it's probably not worth doing if
  you're simply curious.

I much prefer Sam Kamin's "Programming Languages: An Interpreter-Based
Approach", which starts with a three-page lambda calculus interpreter
in Pascal, and slowly adds names, local variables, objects, iterators,
closures, continuations, types, polymorphic types, etc., a chapter at
a time.  It apparently didn't do very well --- programming language
survey courses are slowly disappearing from the undergrad curriculum
in the US.

Greg