Standard ML
- Implementations
- Standard ML of New Jersey (SML/NJ) — used for programming examples and exercises
- MLton
- MLKit
- PolyML
- SML Books
- ML for the Working Programmer, Lawrence Paulson
- Elements of ML Programming, Jeffrey Ullman
- The Definition of Standard ML (Revised), Robin Milner, Mads Tofte, Robert Harper, and David MacQueen — not for the faint of heart!
- Programming in Standard ML, Bob Harper
- SML Tutorials
- Standard ML Tutorial — slides from class
- Programming in Standard ML, Bob Harper
- Notes on Programming SML/NJ, Riccardo Pucella
- A Gentle Introduction to ML, Andrew Cumming
- Programming in Standard ML '97: An On-line Tutorial, Stephen Gilmore
- Libraries
- Standard ML Basis Library — use $/basis.cm in CM files
- SML/NJ Library — use $/smlnj-lib.cm in CM files
- Tools
- Coding standards
- Style Guide — these are useful (and common) conventions among SML programmers, but the are not required for submitted code
Papers and Presentations
- Why Undergraduates Should Learn the Principles of Programming Languages by the ACM SIGPLAN Education Board.
- The Mechanical Evaluation of Expressions by Peter Landin (Computer Journal, 1964)
- The Next 700 Programming Languages by Peter Landin (CACM, 1966)
- Definitional Interpreters for Higher-Order Progamming Languages by John Reynolds (1972)
- The Revised Report on the Syntactic Theories of Sequential Control and State by Matthias Felleisen and Robert Hieb
- A Functional Correspondence Between Evaluators and Abstract Machines by Olivier Danvy et al.
- From Interpreter to Compiler and Abstract Machine by Olivier Danvy et al.
- A Structural Approach to Operational Semantics by Gordon Plotkin.
- The Discoveries of Continuations by John Reynolds.
- Structure and Abstraction in HOT Languages (Marktoberdorf Summer School Notes, 2000).
Additional Useful Material
- Frank Pfenning at CMU has a web site for his version of a course 15-312 Foundations of Programming Languages based on Harpers draft book. This web site has some very useful supplementary lecture notes (found under the Schedule page), as well as assignments, software, and other resources. You may find it useful to browse through this site and download some of the material.
- Mathias Blume CMSC221 Notes from 2008:
- Programming Languages: Theory and Practice, the 2005 draft version of Bob Harper's book. Chapter 12 covers continuations and their applications.