COS IW 06: Little Languages, Spring 2018

Course information

Semester: Spring 2018
Lectures: Thursday, 3:00-4:20 pm
Location: CS CS401
Instructors: Zak Kincaid,
Links: Independent work, Guidelines, Steps and deadlines, Piazza


Programming languages are the medium through which programmers communicate their intentions to machines. In some application domains, it is worthwhile to design specialized programming languages to make this communication more natural and efficient. For example, consider the time and intellectual effort that we save by writing our data validators with regular expressions, our database queries in SQL, and our build processes in makefiles. Beyond these everyday tools, there are domain specific languages that make it easier to construct and reason about statistical models (Church, BUGS, Stan), describe hardware (Verilog, VHDL), implement other languages (lex, yacc), and more.

In this seminar, students will learn about tools and techniques for implementing programming languages, including lexical analysis and parsing, macros, and static analysis. Individually or in small teams, students will design and implement a programing language, language extension, program analysis, or type system that is tailored to some application domain of their choosing. Taking either COS 326 or COS 320 prior to this seminar is recommended but not required.

Status updates

Each student enrolled in the seminar is expected to email me weekly with a status update consisting of:
  1. Your plan for the previous week
  2. What you accomplished in the past week
  3. What you plan to do next week
  4. Anything that you would like to discuss


This is a tentative schedule that will be changed during the course.

Date Topic/Deadline
Feb 8 Attend the Information Meeting 12:30 PM, Convocation Rm., Friend Center
Feb 15 Project pitches: Slides on idea, motivation, and related work.
Feb 25 Submit a Written Project Proposal
Mar 11 Submit the Checkpoint Form
Mar 15 Class will be held in the Deans conference room in Friend Center
Mar 22 No class (Spring break)
Apr 3 Attend "How to Give an IW Talk"
Apr 4-9 Sign up to give an Oral Presentation
Apr 10 Attend "How to Write an IW Paper"
Apr 22 Submit Slides for an Oral Presentation
Apr 23-27 Give an Oral Presentation
May 7 Submit a Written Final Report
May 13 Submit poster
May 14 Present at the Poster Session in Convocation Room, Friend Center