15-317: Constructive Logic (Sp'21)

Table of Contents
  1. About Assignments
    1. Assignment Schedule
  2. Software
    1. SML
    2. Prolog
  3. Exams

About Assignments

Assignment Schedule

The Assignment Schedule is tentative!



For this course we continue to use Standard ML of New Jersey (SML/NJ) that you are familiar with from 15-150 Functional Programming. If you are a masters student and have not taken 15-150 before, you are expected to have acquired a background in functional programming and pick up sufficient proficiency in SML along the way.

Run the SML/NJ compiler, e.g., as

  smlnj -m sources.cm
[SML/NJ | Learning SML | SML base library]


For this course we are using GNU Prolog.

The Andrew Linux cluster installation of GNU Prolog on linux.andrew.cmu.edu can be run either by running the script:

or by adding the directory /afs/andrew/course/15/317/bin to your PATH and running gprolog. You can also download a distribution, e.g., from the GNU Prolog web site or directly from your operating system and install it on your own machine.

Most installations of vim and emacs have editing modes for Prolog code, but the default is to treat .pl files as Perl code. Switching files to Prolog mode works as follows:

[GNU Prolog | Documentation]


The course contents are different, so not all questions are applicable. You may benefit from some practice exams regardless, though.