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

Course Information

  • Instructor: Hongwei Xi (email: hwxi@cs.bu.edu)
  • Instructor's Office Hours: Mondays 2-4 and Wednesdays 11-12 at MCS 270, 111 Cummington Street
  • Grader: Dengping Zhu (email: zhudp@cs.bu.edu)
  • Lecture Times: MWF 10:00-11:00 AM
  • Classroom: Room MCS B31, 111 Cummington Street
  • Midterm: a one-hour in-class exam on Friday, 24 Oct 2003
  • Final: a two-hour exam from 9AM to 11AM on Saturday, 20 Dec 2003
  • 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 functional and object-oriented 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

  • Standard ML of New Jersey
  • Logistics

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

  • Introduction (ppt) (ps)
  • Parsing Combinators (ppt) (ps)
  • Final Review (ppt) (ps)
  • Notes

  • Inductive Reasoning (ps)(pdf)
  • A Crash Course on SML (ps)(pdf) (incomplete!)
  • A session on using Standard ML.
  • Lecture Notes (ps) (pdf) (updated frequently)
  • Code

  • Some sample code for implementing a server in Objective Caml.
  • Some sample code for implementing a client in SML.
  • A parsing combinator package and an example on using parsing combinators.
  • Reference (Draft) Books

  • ML for the Working Programmer by Daniel Larry C. Paulson. ISBN 0-521-57050-6 (hardback) and 0-521-56543-X (paperback). Cambridge University Press.
  • Elements of ML Programming by Jeffery D. Ullman. ISBN 0-13-790387-1. Prentice-Hall.
  • Introduction to Programming using SML by Michael R. Hansen and Hans Rischel. ISBN 0-201-39820-6. Addison-Wesley 1999.
  • Tutorials

    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, 3 September, 2003
  • Class suspended on Monday, 13 October 2003
  • Substitute the previous day's class on Tuesday, 14 October 2003
  • Midterm Exam is a one-hour in-class exam scheduled on Friday, 24 Oct 2003
  • Class suspended on Wednesday, 26 November 2003
  • Class suspended on Friday, 28 November 2003
  • Class ends on Thursday, 11 December, 2003
  • Final Exam is a two-hour exam officially scheduled on Saturday, 20 Dec 2003, from 9 to 11AM
  • Assignments

  • Assignment 1 (ps) (pdf) (Due on Monday, the 15th of September, 2003)
  • Assignment 2 (ps) (pdf) (Due on Monday, the 29th of September, 2003)
  • Assignment 3 (ps) (pdf) (code for parsing combinators) (code for a parser) (Due on Wednesday, the 15th of October, 2003)
  • Assignment 4 (ps) (pdf) (code for a parser) (some test examples) (Due on Wednesday, the 5th of November, 2003)
  • Assignment 5 (ps) (pdf) (Due on Wednesday, the 19th of November, 2003)
  • Assignment 6 (ps) (pdf) (code for a parser) (some test examples) (Due on Wednesday, the 3rd of December, 2003)
  • Assignment 7 (ps) (pdf) (signature for an evaluator) (Due on Friday, the 12th of December, 2003)
  • Solutions

  • Solution 1 (ps) (pdf)
  • Solution 2 (SML code for Exercise 5)
  • Solution 3 (SML code for Exercise 3)
  • Solution 4 (SML code for Exercise 1: parser.sml, typechecker.sml, evaluator.sml, top.sml, sources.cm)
  • Solution 5 (ps) (pdf)
  • Examination

  • Midterm (ps) (pdf)
  • Solution to Midterm (ps) (pdf)