Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Commentary on standard ML
Milner R. (ed), Tofte M. (ed), MIT Press, Cambridge, MA, 1991. Type: Book (9780262631372)
Date Reviewed: Jun 1 1992

The definition of standard ML [1] contains the complete formal definition of the standard ML (SML) language, including syntax as well as static and dynamic semantics for both the core language and the module system. It serves as an SML reference for programmers, teachers, and implementors. This volume is intended as a companion to it.

One motivation for writing this commentary was to provide insight into the theory underlying the definition. This theory relates the various semantic objects introduced in the definition. In the commentary, important properties of the language are expressed by theorems about these objects. Another motivation was to provide explanations and discussions about design choices of the language. The audience for the commentary includes SML implementors as well as SML programmers, teachers of courses on programming languages, and researchers.

The commentary is divided into 11 chapters and includes four appendices. Chapter 1 describes in detail the execution of a simple program. This chapter explains the tools used in the definition (inference rules) and exemplifies some of the semantic aspects of SML addressed in the rest of the book. Chapter 2 comments on the dynamic semantics of the core language, and chapter 3 covers the dynamic semantics of modules; analogies between the core language and the module language are underlined, and alternative semantics for signature ascriptions are discussed. Chapter 4 comments on the static semantics of the core and discusses the interaction between polymorphism and aspects of the core language that are not purely functional (exceptions and references). Chapter 5 is still concerned with the static semantics of the core; it discusses type declarations and equality properties of types and the notion of type principality. The remaining chapters are concerned with the static semantics of modules. Chapter 6 introduces structures and signatures using examples and explains the related semantic objects. The definition of signature matching is commented on in chapter 7, and functors are discussed in chapter 8. The notion of admissibility is discussed in chapter 9. Chapter 10 deals with signature expressions and specifications. The theory of principal signatures is explained in chapter 11. Appendix A gives the full proof of existence of principal signatures, and Appendix B discusses identifier status. Appendix C gives solutions to the numerous exercises of the book. Appendix D corrects some mistakes and ambiguities of the definition. The book ends with a detailed index.

The Definition and Commentary form the reference to the mathematical definition of Standard ML. Since the Definition is a rather technical book, the Commentary is intended to be read first; it directs the reader to the crucial parts of the definition. These two books represent the result of several years of research in the design of the SML language, and the Commentary contains strong arguments in favor of the methodology followed by the authors and, more generally, by the SML committee.

Although some familiarity with SML is recommended, the book is written in a tutorial style and contains numerous examples and exercises. As a result of the accessibility and the high quality of writing of the commentary, together with the technical precision of the definition, these two books represent an important reference of great interest to computer scientists interested in functional programming and language design.

Reviewer:  Michel Mauny Review #: CR115323
1) Milner, R.; Tofte, M.; and Harper, R. The definition of standard ML. MIT Press, Cambridge, MA, 1990.
Bookmark and Share
 
Ml (D.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Ml": Date
ML primer
Stansifer R., Prentice-Hall, Inc., Upper Saddle River, NJ, 1992. Type: Book (9780135617212)
Sep 1 1993
The ML approach to the readable all-purpose language
Spooner C. ACM Transactions on Programming Languages and Systems 8(2): 215-243, 1986. Type: Article
Dec 1 1986
Elements of ML programming
Ullman J., Prentice-Hall, Inc., Upper Saddle River, NJ, 1994. Type: Book (9780131848542)
Jun 1 1995
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy