Overview
Principles of Programming Languages is a course
that introduces students to some fundamental principles and techniques in
modern programming language design and implementation. The course mainly
covers type theories in programming and emphasizes the need for
mathematical formalism in both describing and analyzing programming
languages and programs.
Prerequisites
- Familiarity with programming in general.
- CS320 (Concepts of Programming Languages) or equivalents.
Reference Books
Programming Languages
- ATS
(this mode may be helpful if you
use emacs to edit ATS source code)
Class Calendar
- Assignment 1: Due Tuesday, the 10th of September, 2013
Links:
(README)
(Makefile)
(mysolution1.java)
(assignment1.dats)
(assignment1.cats)
(mysolution1.c)
- Assignment 2: Due Thursday, the 19th of September, 2013
Links:
(README)
(assignment2.dats)
(test.dats)
- Assignment 3: Due Thursday, the 26th of September, 2013
Links:
(README)
(dirmonitor)
(gtkcairoclock)
- Assignment 4: Due Thursday, the 3rd of October, 2013
Links:
(README)
(quicksort.dats)
(assignment4.sats)
- Assignment 5: Due Thursday, the 10th of October, 2013
Links:
(README)
(Makefile)
(assignment5.sats)
(mysolution5.dats)
(test.dats)
- Assignment 6: Due Thursday, the 17th of October, 2013
Links:
(README)
(Makefile)
(assignment6.sats)
(mysolution6.dats)
(assignment6-2.sats)
(mysolution6-2.dats)
(test.dats)
- Assignment 7: Due Thursday, the 24th of October, 2013
Links:
(README)
(Makefile)
(assignment7.sats)
(mysolution7.dats)
(test.dats)
- Assignment 8: Due Thursday, the 31th of October, 2013
Links:
(README)
(DiningPhil) for reference
(DiningPhil2)
- Assignment 9: Due Tuesday, the 12th of November, 2013
Links: (Assignment 9)
- Assignment 10: Due Monday, the 25th of November, 2013
Links: (Assignment 10)