CSCI-GA.2130-001
Compiler Construction
Prof. Mohamed Zahran   (aka Prof. Z)
mzahran AT cs DOT nyu DOT edu
Tuesdays 7:10-9:00 pm  Location: WWH 202
Office Hours: Wed 4-6pm and by appointments (WWH 320)


Announcements

Welcome students! ... to the compiler construction course, edition Fall 2012.  I will keep updating this page regularly. If you have questions related to that course feel free to email me. Here is some basic information:

Please take a look at the course syllabus  to get a good idea about the course.

We have graders for this course!
Kshitij Atul Agrawal ka1042 (at)nyu.edu
Ravi Chotrani    ravi.chotrani(at)nyu.edu

Our final exam is on Tuesday Dec 18th (same time and place as the lectures)

Mailing List

Sign up for the Mailman mailing list for the course. If the system has not already signed you.
You can do so by clicking here. Please follow the mailing list etiquette. 

Lectures

Lecture                                                                            reading                 

1. Introduction                                                        1.1, 1.2 and skim 1.3 to 1.6

2. Simple Syntax-Directed Translator I                      2.1 to 2.4

3.
Simple Syntx-Directed Translator II                      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                                                3.1 to 3.5

5.
Lexical Analysis II                                               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                                                4.1->4.5 except: skim: (4.2.6, 4.3.5, 4.4.4, and 4.4.5)

7. Syntax Analysis II                                                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                                 5 except: skim (5.3, 5.4.3->5.4.5, 5.5.3, and 5.5.4)

9.
Intermediate-Code Generation I                             6.1 -> 6.4 except: skim (6.3.1 and 6.3.2)

10. 
Intermediate-Code Generation II                          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                                     chp 7 except: skim (7.3, 7.5.2, 7.6, 7.7, and 7.8)

12. Code Generation I                                               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                                              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 Oct 9th  
Here is a quick start guide for flex by our grader Ravi.

Syntax analyzer:   Due  Oct  30th
slides about that  pat of the project.
Also a quick start guide for bison from our grader Kshitij

Semantic analysis:  Due Nov 20th

Code generation:   Due Dec 11th

Test Programs

Homework Assignements

hw1 (Due  Sep 25th)  solution   Comments

hw2 (Due  Nov 27th) solution


Older Exams

Spring 2010
Fall 2010
Spring 2011
Spring 2012


Useful Links (More specific about our course material)

Flex: fast lexical analyzer for C/C++

bison: gnu version of syntax analyser generator

Interesting Links (Geeky stuff general about compilers)

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