Main Page
From CTMWiki
Welcome to the CTM wiki
This wiki is about the book Concepts, Techniques, and Models of Computer Programming (http://www.info.ucl.ac.be/~pvr/book.html) by Peter van Roy and Seif Haridi, also known here as CTM. It is intended as a forum for discussion of the book and of the different approaches to programming that it introduces.
We hope that this resource will be of high use to professors and students who are using CTM in the classroom, and also to working programmers and enthusiasts outside of the academy who wish to broaden their horizons.
About CTM
See the brief introduction to CTM, or browse the Frequently Asked Questions. Errata
Topics
Among the topics covered by CTM are the following:
- Concurrency
- State
- Distributed Programming
- Constraint Programming
- Formal Semantics
- The importance of declarative concurrency
- The benefits of message-passing concurrency as a default
- Why eager execution is a better default than lazy execution
- Different forms of data abstraction (objects, ADTs, and so forth!)
- Building GUIs with a combined declarative/procedural approach
- Making the transparency approach to distributed programming work
- Formal semantics can be simple
Some of the entries in this list are deliberately worded to provoke discussion!
Language and Implementation
The language used throughout CTM is Oz, as implemented by the Mozart Programming System.
Other languages that support some of the Concurrency Oriented Programming features implemented by Mozart/Oz include Erlang, Alice ML, Occam-pi, E, ToonTalk, Languages:Alef and Languages:Limbo.
- Alice ML (http://www.ps.uni-sb.de/alice/) is designed to keep as much as possible of Oz expressiveness in a statically typed setting.
- Erlang (http://www.erlang.org) is designed for building high-availability systems that survive software crashes.
- Occam-pi (http://www.cs.kent.ac.uk/projects/ofa/kroc/) is an experimental extension of the venerable occam (http://www.wotug.org/occam/) concurrency oriented language, and adds pi-calculus (http://lampwww.epfl.ch/mobility/) style mobility to occam's existing CSP (http://vl.fmnet.info/csp/)-like concurrency model.
- E (http://www.erights.org) is designed for building secure distributed systems.
- ToonTalk (http://www.toontalk.com) is an animated world that can be programmed by children.
- Limbo (http://www.vitanuova.com/inferno/papers/limbo.html) is the language for the Inferno (http://www.vitanuova.com/inferno/net_download4T.html) operating system from the creators of Unix and Plan 9 (http://plan9.bell-labs.com/plan9dist/) at Bell Labs.
Readers of CTM who do not use Oz for their daily programming tasks may be interested in discussing CTM examples in other languages.
Events and Discussions
CTM-related discussions on the programming languages weblog Lambda the Ultimate (see also Lambda the Ultimate (http://www.lambda-the-ultimate.org)).
Readers currently working through the book are encouraged to share their reading notes.
Slashdot announcement and discussion (http://developers.slashdot.org/article.pl?sid=03/06/18/127214) of the book. Peter Van Roy and Seif Haridi (username: seif) participated.
Projects
Want to work on Mozart/Oz or a related project? See Project Ideas for things that need doing, and Projects for work-in-progress.
Wiki Help
Suggestions for wiki spam deflection techniques urgently solicited...
Please see documentation on customizing the interface (http://meta.wikipedia.org/wiki/MediaWiki_i18n) and the User's Guide (http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide) for usage and configuration help.
Blocked addresses and nets spammers/proxies originating from (http://wiki.forthfreak.net/index.cgi?BlockedAddresses). New spammers are usually added quickly: page modifications result in sending a Jabber instant messenger message immediately to wiki editors.
![[Main Page]](/wiki/stylesheets/images/wiki.png)