COMP 426: Automated Reasoning
Home : Course Information : Schedule : Assignments : Handouts : Resources

Resources -- Fall 2005

Standard ML

Standard ML is a safe, modular, strict, functional, polymorphic programming language with compile-time type checking and type inference, garbage collection, exception handling, immutable data types and updatable references, abstract data types, and parametric modules. It has efficient implementations and a formal definition with a proof of soundness. For more information:

Recommended gentle introductions:

Recommended books and other documents:

Using SML in emacs or xemacs:

Basics on how to use SML within SOCS McGill

SML has been installed on some of the lab machines (lab7-1 to lab7-16) and you should be able to start the SML compiler by logging into one of these machines and then typing sml in a shell.

To run the code provided, you should first change to the directory where your sml code resides. Then you can start the sml compiler by typing sml. To compile the code provided, just type CM.make "sources.cm";

If you have started the sml compiler in a different directory than your code, you must change to correct directory. Within sml you can type the following:

  • Posix.FileSys.chdir "dirname"; change directory to dirname
  • Posix.FileSys.getcwd(); get the name of the current directory