|Lecture:||Mondays, 7:10PM-9:00PM, CIWW 202|
|Instructors:||Kristoffer H. Rose (email@example.com) and Eva Rose|
|Instructors's office hours:||Mondays 6:00-7:00, Room CIWW 328, or by appointment|
|Prerequisites:||G22.1170 (algorithms), G22.2110 (programming languages), and G22.2250 (operating systems)|
|Text book:||Compilers: Principles, Techniques, and Tools (2nd Edition), by Aho/Lam/Sethi/Ullman. Addison Wesley, 2007.|
The course description below is quoted from the Graduate School of Arts and Science Bulletin:
This is a capstone course based on compilers and modern programming languages. The topics covered include structure of one-pass and multiple-pass compilers; symbol table management; lexical analysis; traditional and automated parsing techniques, including recursive descent and LR parsing; syntax-directed translation and semantic analysis; run-time storage management; intermediate code generation; introduction to optimization; and code generation. The course includes a special compiler-related capstone project, which ties together concepts of algorithms, theory (formal languages), programming languages, software engineering, computer architecture, and other subjects covered in the MS curriculum. This project requires a substantial semester-long programming effort, such as construction of a language compilation or translation system that includes lexical and syntactic analyzers, a type checker, and a code generator.
Specifically, the course will follow the “Dragon Book” (second edition) as the text book. In the semester-long programming project, we will implement a fully functional compiler for a simple programming language. The implementation will use a custom NYU version of the compiler-generator infrastructure CRSX. The project consists of multiple milestones (some coding, some planning). Each milestone builds on code from the previous milestone; reference code will be made available before each milestone as an alternative to your own code from the previous stage. You can develop the project on your own machine, but must make sure that it works on the energon1.cims.nyu.edu to energon4.cims.nyu.edu machines at NYU.
|Machines at Courant:||http://cims.nyu.edu/webapps/content/systems/resources/computeservers|
|Graduate cs.nyu.edu courses:||http://cs.nyu.edu/webapps/spring2014/Graduate/courses|
|Graduate cs.nyu.edu calendar:||http://cs.nyu.edu/webapps/Graduate/calendar|
|Previous Incarnations:||Fall'13 (Martin Hirzel and Kristoffer Rose), Spring'13 (Hubertus Franke), Fall'12 (Mohamed Zahran), Fall'11 (Martin Hirzel), Spring'09 (Allan Gottlieb)|
|Academic integrity policy:||http://cs.nyu.edu/web/Academic/Graduate/academic_integrity.html|