Announcements
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 cs.uchicago.edu Office hours: W 10:00am – noon (or by apt.); TTI-C #521 (6045 S. Kenwood) TA: Adam Shaw E-mail: ams at cs.uchicago.edu Office hours: F 10:00am – noon; CS Linux Lab (Regenstein Library) TA: Yingqi Xiao E-mail: xiaoyq at cs.uchicago.edu Office hours: W 3:00pm – 5:00pm; Ryerson 177-c2 Lectures: TuTh 1:30pm – 2:50pm; Ryerson 251 Home page: www.classes.cs.uchicago.edu/archive/2009/winter/22610-1 Mailing list: cmsc22610@mailman.cs.uchicago.edu mailman.cs.uchicago.edu/mailman/listinfo/cmsc22610 GForge server: cs22610.cs.uchicago.edu
Overview
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.