Language Principles

Joseph Bergin - - Pace University, New York

During the Fall of 2005 I will be teaching CS 361 , which deals with the principles of computer languages. Since most students begin with a language like Java, which is Object-Oriented, or even Pascal or C, both of which are procedural languages, we will study the language ML rather intensively. ML (Meta Language) is a functional language, developed by Robin Milner at the University of Edinbugh in Scotland.

We will do much more than study a new language, however. ML is used primarily to help the student see the range of possibities in languages. Functional languages have the interesting property that you program without loops, assignments, or even variables. All work is done by defining interesting (recursive) functions, and evaluating them with actual arguments.

Text Books

Additional Materials on ML

You can read more about ML on the FAQ page. (You can download SML here also)
Or you can check the ML newsgroup comp.lang.ml.


Obtaining ML

Standard ML of New Jersey may be obtained from the AT&T home page research.att.com. Standard ML of New Jersey runs on most UNIX systems, the Macintosh, and IBM PC's. It is very large, however.

CAML-Light was developed at INRIA in France and runs on most platforms.

Moscow ML (for the IBM PC and others) This is probably the best one of reasonable size.

For the PC
For Linux
For the Macintosh

Meta Lizard (for the Macintosh OS9). Self extracting archive. Decode with binhex. Double-Click to expand.

Other Course Materials

MacLennan's Language Design Principles

MICRO Compiler Materials

Additional materials, including updates to some of the packaged files.

Language Principles files (text format).


Back to Joseph Bergin's Home Page