http://www.info.ucl.ac.be/people/PVR/coverSmall.jpg * ''Concepts, Techniques, and Models of Computer Programming'' by PeterVanRoy and Seif Haridi * Publisher: The MIT Press (March 1, 2004) * ISBN 0262220695, ISBN 978-0262220699 * http://www.info.ucl.ac.be/~pvr/book.html * ProgrammingBookAcronym: CTM Also referred to as TheOzBook when it's clear from context that this does not refer to L. Frank Baum's TheWizardOfOz. Quoting from http://www.info.ucl.ac.be/people/PVR/book.html : : ''The book is organized around programming concepts. It starts with a small language containing just a few concepts. It shows how to design, write programs, and reason in this language. It then adds concepts one by one to overcome limitations in expressiveness. In this way, it situates all major programming paradigms in a uniform framework. More than twenty paradigms are given, all represented as subsets of the MultiparadigmLanguage Oz [OzLanguage]. We find that all have their place: "more is not better (or worse) than less, just different".'' Prior to publication, there was an online draft available from the book's website. Although the publishers and authors might disapprove, this draft is still accessible through the WaybackMachine. ''In fact, there still is: http://www.ulb.ac.be/di/rwuyts/INFO020_2003/vanRoyHaridi2003-book.pdf'' (BrokenLink) Info - http://www.info.ucl.ac.be/~pvr/book.html There is now a wiki dedicated to CTM: http://www.codepoetics.com/wiki * Compromised and removed - ''The CTM wiki appears to have been compromised by an intruder; as I can't tell what's kosher and what isn't, I've removed the entire site for the time being. I will try to restore it when I get the time.'' * For those who are interested, you can browse the former wiki at the Wayback Machine: http://web.archive.org/web/20100714011950/http://codepoetics.com/wiki/index.php?title=Main_Page ---- The nickname "The Oz Book" is appropriate, both because OzLanguage (which the authors, along with several others, developed) is the primary language used in the book, and because of the inevitable comparisons with TheWizardBook (StructureAndInterpretationOfComputerPrograms). Like SiCp, CTMCP is first and foremost a book on ''programming'', not on Oz or Scheme or anything else. And if SiCp is the reigning king of such books, ConceptsTechniquesAndModelsOfComputerProgramming is a worthy challenger to that particular throne. (More accurately, this book deserves to be on the same shelf as SiCp, in my opinion -- and I definitely would read both of them, along with ObjectOrientedSoftwareConstruction). There are a few concepts in this book which receive better coverage here than in SiCp; namely: * Stateful programming, including ObjectOrientedProgramming. The authors have many interesting things to say here. * Concurrency. Several concurrency models are discussed: dataflow programming, CommunicatingSequentialProcesses, and SharedStateConcurrency. * LogicProgramming and ConstraintProgramming. Conversely, traditional functional programming is better covered in SiCp, as are the contents of SiCp's chapter 5, dealing with language implementations and compilers. One good point in favor of this book (compared to many programming texts and well-known personalities) is the authors' careful avoidance of dogma. Although OzLanguage features prominently in the book, this book doesn't make extravagant claims about Oz (or engage in specious criticism of other languages -- if anything, the authors are ''too'' nice). Compare this to ObjectOrientedSoftwareConstruction, where an otherwise excellent book is diminished due to the fact that it frequently reads like a sales brochure for EiffelLanguage. Nor do the authors engage in "paradigm-bashing". While the authors clearly do have a favorite paradigm, all of the paradigms presented are discussed in a reasonable fashion, with strengths and weaknesses cataloged and analyzed. When the authors ''do'' criticize something (SharedStateConcurrency, a technique which seems to dominate programming these days, receives quite a bit of criticism), it makes you want to sit up and pay attention. In the final analysis, the authors recommend use of whatever paradigm works, including several different ones in the same problem. A welcome relief from several other authors I can think of, each promoting their own One True Way. Highly recommended. -- ScottJohnson Agreed on all counts. Wonderful book, very insightful, strangely easy to read (haven't figured that out yet), very unusual in many respects. There really isn't any other book out there that is even vaguely like it in subject coverage. I think it's a natural complement to SiCp. A must-read even if one isn't interested in SiCp, too. I've quoted it multiple times on various pages here. -- DougMerritt ---- Links to discussion of CTM on the LambdaTheUltimate weblog: ---- Also see StructureAndInterpretationOfComputerPrograms and LargeAndSmallLanguages. ---- CategoryBook