15-312 Foundations of Programming Languages

The implementation language in this course will be Standard ML. We assume you are already familiar with ML (15-212 is a prerequisite for this class), so we provide only a few potentially helpful links.

Running SML/NJ

On Suns and other Unix machines, you may run the CS installation of SML/NJ with


or simply as /usr/contributed/bin/sml-cm. The first command runs SML/NJ version 110.0.3, the latter SML version 110.0.7. You're welcome to develop your code using any SML compiler you like, but please make sure your code runs correctly under SML/NJ 110.0.3: when we grade, we will use that version to test your code. Also, the interface to the Compilation Manager varies depending on the version of SML/NJ, so you'll probably run into fewer hassles if you use the same version we do.

Concurrent ML (CML)

See the CML home page for information on CML. In the Andrew environment, you can load it from sml with

    CM.autoload' "/usr/contributed/lib/smlnj/lib/cml.cm";

which defines the structure CML. You can see the components with open CML; or refer to the documentation or the examples. If you use the compilation manager, include cml.cm in sources.cm.

Using SML/NJ

[ Home | Schedule | Assignments | Software | Resources ]

Frank Pfenning