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)
-
Inductive Reasoning
(pdf)
(ps)
-
Untyped Lambda-Calculus
(pdf)
(ps)
-
Simple Types
(pdf)
(ps)
Class Calendar
- Tuesday, 6 Sep, 2011: Class begins.
- Thursday, 24 Nov, 2011: Holiday recess.
- Thursday, 8 Dec, 2011: Last day for the class
- Assignment 1: Due on Tuesday, the 20th of September, 2011
Links:
(pdf)
(ps)
(rbtree.c)
- Assignment 2: Due on Tuesday, the 4th of October, 2011
Links:
(html)
(pdf)
- Assignment 3: Due on Tuesday, the 18th of October, 2011
Links:
(html)
(pdf)
(ralst.dats)
(list.dats)
- Assignment 4: Due on Tuesday, the 1st of November, 2011
Links:
(html)
(pdf)
(mylist.dats)
(cycbuf.sats)
(cycbuf.dats)
- Assignment 5: Due on Thursday, the 17th of November, 2011
Links:
(html)
(pdf)
(utmeval.sats)