BU CAS CS 520
Principles of Programming Languages
Semester: Fall 2009

Course Information

  • Instructor: Hongwei Xi (email: hwxi AT cs DOT bu DOT edu)
  • Instructor's Office Hours: TR: 12:30-1:30, F: 1:00-2:00, or by appointment
  • Grader: TBA
  • Lecture Times: Tueday & Thursday 11:00-12:30
  • Classroom: Room MCS B31, 111 Cummington Street
  • Midterm:
  • Final:
  • 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.

    Prerequisites

  • Familiarity with programming in general.
  • CS320 (Concepts of Programming Languages)
  • Textbook

  • Types and Programming Languages by Benjamin C. Pierce. ISBN 0-262-16209-1. MIT Press.
  • Programming Languages

  • ATS (this mode may be helpful if you use emacs to edit ATS source code)
  • Logistics

  • Syllabus (ps)(pdf)
  • Schedules
  • Guidelines for Homework Submission (ps)
  • How to use gsubmit to submit homework?
  • Archived Messages(new!)
  • Slides

  • Introduction (ppt) (ps)
  • Notes

  • Inductive Reasoning (pdf) (ps)
  • Programming with Dependent Types (pdf) (ps)
  • Untyped Lambda-Calculus (pdf) (ps)
  • Simple Types (pdf) (ps)
  • Dependent Types (pdf) (ps)
  • Linear Types (pdf) (ps)
  • Code

  • 2009-09-03 (Thursday)
  • 2009-09-08 (Tuesday)
  • 2009-09-15 (Tuesday)
  • 2009-09-24 (Thursday)
  • 2009-10-06 (Tuesday)
  • 2009-10-08 (Tuesday)
  • STFPL (tgz): typechecker and interpreter for a simply-typed programming language
  • 2009-10-22 (Thursday)
  • 2009-10-27 (Tuesday)
  • 2009-10-29 (Thursday)
  • 2009-11-10 (Tuesday)
  • 2009-11-12 (Thursday)
  • 2009-11-19 (Thursday)
  • 2009-11-24 (Tuesday)
  • 2009-12-01 (Tuesday)
  • Reference Books

  • ATS/Anairiats User's Guide (pdf) (ps)
  • Mailing List

  • The class mailing-list is cascs520a1-l@bu.edu. Please find information on using the mailing-list here.
  • Class Calendar

  • Tuesday, 13 Oct, 2009: No class (substituting Monday's schedule)
  • Thursday, 26 Nov, 2009: Holiday recess.
  • Thursday, 10 Dec, 2009: Last day of class
  • Friday, 18 Dec, 2009: final exam from 9AM to 11AM
  • Assignments

  • Assignment 1 (ps) (pdf) (rbtree.c) (Due on Tuesday, 15th of September, 2009)
  • Assignment 2 (ps) (pdf) (f91.dats) (brauntree.dats) (Due on Tuesday, 29th of September, 2009)
  • Assignment 3 (ps) (pdf) (power.sats) (power.dats) (ralist.sats) (ralist.dats) (ralist.pdf) (Due on Thursday, 15th of October, 2009)
  • Assignment 4 (ps) (pdf) (exercise1.dats) (gtree.dats) (list.dats) (Due on Thursday, 29th of October, 2009)
  • Assignment 5 (assignment5.dats) (Due on Thursday, 12th of November, 2009)
  • Assignment 6 (ps) (pdf) (assignment6_3.dats) (assignment6_4.dats) (Due on Tuesday, 24th of November, 2009)
  • Assignment 7 (ps) (pdf) (assignment7.dats) (Due on Friday, 11th of December, 2009)
  • Solutions

  • Solution 1 (exercise1.dats) (listBraunTreesOfGivenHeight.dats) (listBraunTreesOfGivenHeight1.dats)
  • Solution 2 (alnf_subst.dats) (f91_solution.dats) (brauntree_solution.dats)
  • Solution 3 (ps) (pdf) (power.dats) (ralist.dats)
  • Solution 4 (ps) (pdf) (exercise1.dats) (gtree.dats) (list.dats)
  • Solution 5 (assignment5.dats)
  • Solution 6 (pdf) (assignment6_3.dats) (assignment6_4.dats)
  • Solution 7 (pdf) (assignment7.dats)
  • Examination

  • Midterm pdf
  • Final Exam: pdf