An introduction to the design and construction of compilers and translators. Topics include context-free grammars, lexical analysis, symbol tables, top-down and bottom-up parsing, parser generators, error recovery, run-time organization, declaration processing, type checking, code generation, and optimization. Through the course of the semester students will implement a complete compiler for a simple programming language. (CSCI 0202 and CSCI 0301) 3 hrs. lect./lab
This senior seminar provides a capstone experience for computer science majors at Middlebury College. Through lectures, readings, and a series of two to three week individual and group assignments, we will introduce important concepts in research and experimental methods in computation. Examples will include: reading research papers; identifying research problems; dealing with big data; experimental design, testing and analysis; and technical writing in computer science. (Approval only).