Announcements
Welcome students! ... to the compiler construction course, edition Spring 2010. If you have questions related to that course feel free to email me at mzahran@cs.nyu.edu . Here is some basic information:
The course syllabus
The final exam is scheduled to be
Mailing List
Sign up for the Mailman mailing list for the course. You can do so by clicking here. Please follow the mailing list etiquette.
I will keep an FAQ page that summarizes important questions and answers from the mailing list.
Lectures
Lecture File reading
1. Introduction pdf 1.1, 1.2 and skim 1.3 to 1.6
2. Simple Syntax-Directed Translator I pdf 2.1 to 2.4
3. Simple Syntx-Directed Translator II pdf 2.5 to 2.8
4. Lexical Analysis I pdf 3.1 to 3.5
5. Lexical Analysis II pdf 3.6->3.9 except: skim (3.7.3, 3.7.5, 3.9.1->3.95, and 3.9.8)
6. Syntax Analysis I pdf 4.1->4.5 except: skim: (4.2.6, 4.3.5, 4.4.4, and 4.4.5)
7. Syntax Analysis II pdf 4.6->4.9 except: skim (4.6.5, 4.7.5, 4.7.6, 4.8, and 4.9.2)
8. Syntax-Directed Translations pdf 5.1->5.5 except: skim (5.3, 5.4.3->5.4.5, 5.5.3, and 5.5.4)
9. Intermediate-Code Generation I pdf 6.1 -> 6.4 except: skim (6.3.1 and 6.3.2)
10. Intermediate-Code Generation II pdf 6.5->6.9 except: skim (6.5.3, 6.5.4, 6.5.5, 6.6.5, 6.7, 6.8, and 6.9)
11. Run-Time Environments pdf chp 7 except: skim (7.3, 7.5.2, 7.6, 7.7, and 7.8)
12. Code Generation I pdf 8.1->8.5 except: skim (8.3.3, 8.5.4, 8.5.5, 8.5.6, and 8.5.7)
13. Code Generation II pdf 8.6-> 8.9 except: skim (8.8, 8.9.3, 8.9.4, 8.9.5)
14. REVISION
Project
Lexical analyzer : Due Feb 25
Syntax analyzer: Due April 1st (Extended)
Semantic analyzer and intermediate code generation: Due April 22nd
Assignments
(assignments are optional, with due date, will be returned, will help your understanding but will not hurt your grade)
Useful Links
Compiler construction tool (Gentle)
Good tutorial about yacc and lex
Flex: fast lexical analyzer for C/C++
Lex: lexical analyzer generators for C/C++
JavaCC: parser and scanner generator for Java
JLex: lexical analyzer generator for Java
yacc: yet-another-compiler-compiler
bison: the gnu version of yacc, compatible with yacc
Interesting Links
Nice article in Linux Journal about using Lex and Yacc in an innovative way!
An Interview with Michael Rabin: ACM Communications Magazine Vol 53, No. 2, Feb 2010 See how automata theory was discovered and evolved.
Compiler Research: The Next 50 years: ACM Communications Magazine, Vol 52, No. 2, Feb 2009
Power Efficient Software: ACM Communications Magazine Vol 53, No. 2, Feb 2010
GCC: The Gnu Compiler Colection
PHP to C++ translator: (this link is provided by Alex Lobascio): facebook folks are not wasting their time!
Phoenix: the basis for all future Microsoft compiler technologies