CMSC 430, Spring 2012

Introduction to Compilers

Home Schedule Piazza Grades Submit Syllabus Resources


Important announcements related to the course will be posted here. Please check this page daily.

CourseEvalUM open now through Friday, May 11.

Remaining Office Hours

Apr 303:15-4:15pmJeff
May 15-7pmKris
May 23:15-4:15pmJeff
May 4no office hours
May 73:15-4:15pmJeff
May 84:30-8:30pmKris
May 93:15-4:15pmJeff
May 1112:30-2Kris
May 142-4pmJeff
May 154-7pmKris
May 1611am-1:30pmJeff


Name Office E-mail Office Hours
(also available by appointment)
Jeff Foster 4129 AVW jfoster at MW 3:15-4:15pm
Kristopher Micinski 1112 AVW micinski at Tu 5-7pm, Fr 12:30-2pm


Today's programming languages give programmers unprecedented power and flexibility, and yet sometimes they are still not enough. There are many occasions when it is possible to encode the solution to a programming problem in an existing language, but at the cost of significant effort, loss of elegance and clarity, and reduced maintainability. In these cases, often the best way to solve a problem is to develop a new language that makes the solution easy to express correctly, succinctly, and maintainably. Examples of such languages range from "little" ones like Make, XML, JSON, YAML, Wiki, bash, Windows .ini files, autoconf, etc., to "big" ones like Perl, Python, Ruby, PHP, JavaScript, R, MATLAB, etc. All of these languages were invented because existing languages just weren't good enough, and in the course of your career, you also may find yourself needing to invent a new programming language!

The goal of CMSC 430 is to arm students with the ability to design, implement, and extend a programming language. Throughout the course, students will design and implement several related languages, and will explore parsing, syntax querying, dataflow analysis, compilation to bytecode, type systems, and language interoperation.

Lecture Location 1122 CSIC
Lecture Time MW 2:00-3:15pm
Midterm Exam 1 Wed, Mar 14, in class
Midterm Exam 2 Wed, Apr 18, in class
Final Exam Wed, May 16, 1:30-3:30pm, 1122 CSIC
Textbooks There are no required or recommended texts. See the resources page for useful online links.

Web Accessibility