G22.2130-001
Compiler Construction
Prof. Mohamed Zahran   (aka Prof. Z)
mzahran AT cs DOT nyu DOT edu
Thursdays 7:10-9:00 pm  Location: WWH 512
Office Hours: Thursdays 5-7pm (WWH 328)


Announcements

Welcome students! ... to the compiler construction course, edition Spring 2011.  I will keep updating it regularly. 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

Our final exam will be on Thursday, May 12th from 7:10-9pm in WWH 512.

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. 


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  and skim 2.5.4, 2.5.5, 2.6.5, 2.8.2, and 2.8.4

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) 

Summary of topics and extra problems


Project

Lexical analyzer :  Due Feb 24th

Syntax analyzer:   Due Mar 24th  (slides)

Semantic analysis:  Due Apr  14th

Code generation: Due  May 5th

Test programs


Practice Problems

These problems are for practice only. They will not affect your final grade. Therefore you do not need to submit them. But I highly suggest you do submit.
If you want me to grade them, you need to submit them by  Apr 28th.

Problems     Solutions

Final exam of Fall 2010

Final exam of Spring 2010


Useful Links (More specific about our course material)

Flex: fast lexical analyzer for C/C++

bison: gnu version of syntax analyser generator


Interesting Links (General about compilers)

Interesting debate about YACC (Thanks to Ali Shah):

Another Parser genertor (ANTLR)  (Thanks to Gordon Woodhull)

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

Compilers resources page

Phoenix: the basis for all future Microsoft compiler technologies