CMSC 22610
Implementation of Computer Languages - I
Winter 2009


Office hours for Prof. Fluet have changed due to travel:

  • Cancelled on Feb. 25 (Wed) and Mar. 4 (Wed).
  • Added on Feb. 23 (Mon), Feb. 27 (Fri), Mar. 2 (Mon), and Mar. 6 (Fri) at 10:00AM – noon.

Due date of Project 2 moved from February 6 to February 9.

Office hours for Prof. Fluet have moved to TTI-C #521 (6045 S. Kenwood).

Please welcome our new TA, Yingqi Xiao.

Office hours for Adam have been changed to F 10:00am – noon; CS Linux Lab (Regenstein Library)

GForge accounts have been created for all students registered for the course. You should receive an account registration e-mail; to complete your registration, follow the confirmation URL and login with your CNetId and the password compilers. Finally, change your password by following the Account Maintenance link and then the [Change Password] link.

There will be an optional lab on Wednesday, Jan. 7, 2009 at 8:00pm in the CS Linux Lab (Regenstein Library). The lab will provide an opportunity to increase familiarity with Standard ML through an exercise and will introduce some of the tools and workflow for the course project.

The first class will be on Tuesday, Jan. 6, 2009 at 1:30pm in Ryerson 251.

General Information

Instructor: Matthew Fluet
E-mail:  fluet at
Office hours:W 10:00am – noon (or by apt.); TTI-C #521 (6045 S. Kenwood)
TA: Adam Shaw
E-mail:  ams at
Office hours:F 10:00am – noon; CS Linux Lab (Regenstein Library)
TA: Yingqi Xiao
E-mail:  xiaoyq at
Office hours:W 3:00pm – 5:00pm; Ryerson 177-c2
Lectures: TuTh 1:30pm – 2:50pm; Ryerson 251
Home page:
Mailing list:
GForge server:


The course covers principles and techniques for implementing computer languages, such as programming languages, query languages, specification languages and domain-specific languages. Topics include lexical analysis, parsing, tree representations of programs (both parse trees and abstract syntax trees), types and type checking, interpreters, abstract machines, and run-time systems. This is a project-based course involving the implementation of a small language using Standard ML.

This course is the first in a sequence of two courses that cover the implementation of computer languages. The second course (CMSC 22620; Spring 2009) covers more advanced issues related specifically to the translation of general purpose programming languages.

Last modified: Sat Feb 21 22:47:59 CST 2009