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

Course Information

  • Instructor: Hongwei Xi (email: hwxi@cs.bu.edu)
  • Instructor's Office Hours: W 11:00-12:00 and Th 12:00-2:00
  • Grader: TBA
  • Lecture Times: MWF 10:00-11:00 AM
  • Classroom: Room MCS B29, 111 Cummington Street
  • Midterm: a one-hour in-class exam on Friday, 4 Nov 2005
  • Final: a two-hour exam from 9:00 to 11:00 AM on Monday, 19 Dec 2005
  • 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
  • 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)
  • A Crash Course on SML (pdf) (ps)
  • A Crash Course on ATS
  • Code

  • Some demo code (demo 1) (demo 2)
  • Some demo code on implementing data structures in System F:
    (programming_examples_in_systemf.dats)
  • Some demo code on object-oriented programming in ATS (demo 3)
  • Some demo code on continuation-passing style programming (demo 4)
  • Some demo code on switch statements and loops (demo 5)
  • Reference Books

  • Programming in ATS (pdf) (ps) by Hongwei Xi.
  • Mailing List

  • To join the course mailing list, type csmail -a cs520 at the Unix prompt
  • To inspect who else is on the mailing list, type csmail -p cs520
  • To remove yourself from the mailing list, type csmail -r cs520
  • Class Calendar

  • Class begins on Wednesday, 7 September, 2005
  • Class suspended on Monday, 10 October 2005
  • Midterm Exam is a one-hour in-class exam scheduled on Friday, Nov 4, 2005
  • Class suspended on Friday, 11 November 2005
  • Class suspended on Wednesday, 23 November 2005
  • Class suspended on Friday, 25 November 2005
  • Class ends on Monday, 12 December, 2005
  • Final Exam is a two-hour exam officially scheduled on Monday, 19 Dec 2005, from 9 to 11AM
  • Assignments

  • Assignment 1 (ps) (pdf) (Due on the 30th of September, 2005)
    (Here is a package implementing some operations on rational numbers)
  • Assignment 2 (ps) (pdf) (Due on Monday, the 10th of October, 2005)
  • Assignment 3 (ps) (pdf) (code for parsing combinators) (code for a parser) (Due on Monday, the 24th of October, 2005)
  • Assignment 4 (ps) (pdf) (Due on Monday, the 2nd of November, 2005)
  • Solutions

    Examination