Concurrent Programming in ML focuses on the practical use of concurrency to implement naturally concurrent applications. In addition to a tutorial introduction to programming in Concurrent ML (CML), the book presents three extended examples using CML for practical systems programming: a parallel software build system, a simple concurrent window manager, and an implementation of distributed tuple spaces. CML, which is included as part of the SML of New Jersey (SML/NJ) distribution, combines the best features of concurrent programming and functional programming. This book also illustrates advanced SML programming techniques, and includes a chapter on the implementation of concurrency using features provided by the SML/NJ system. It will be of interest to programmers, students, and professional researchers working in computer language development.
• Designed for self-study • Presents extended examples of complete applications, in particular a Windows system • Includes formal semantics of CML and CML tutorial and reference manual
1. Introduction; 2. Concepts in concurrent programming; 3. An introduction to Concurrent ML; 4. CML programming techniques; 5. Synchronization and communication mechanisms; 6. The rationale for CML; 7. A software build system; 8. A concurrent window system; 9. A CML implementation of Linda; 10. Implementing concurrency in SML/NJ; Appendix 1. CML reference manual; Appendix 2. The semantics of CML.