Back


CS 30003 Compiler Construction

(Autumn Semester 2013)

Theory
Bivas Mitra

Laboratory
Bivas Mitra
Animesh Mukherjee

Teaching Assistant
Sudakshina Dutta sudakshina.dutta [AT] gmail.com
Tanwi Mallick tanwireachesu [AT] gmail.com
Himanshu Srivastava himanshusri18 [AT] gmail.com
Ananth Balashankar Ananthbalashankar [AT] gmail.com
Anshul Singhle Anshul.Singhle [AT] gmail.com
Chitresh Sinha chitresh.iitkgp [AT] gmail.com


Notices

02.12.2013 Final Grades
17.11.2013 Midsem Marks
10.11.2013 Theory Assignment is up. Submission deadline 14th Nov.
05.11.2013 Lab Assignment 9 is up.
24.10.2013 Lab Assignment 8 is up.
21.10.2013 Updated scribe assignments and deadlines here.
10.10.2013 Lab Assignment 7 is up.
10.10.2013 Monday's class at 8.00am. Tutorial class on Wednesday 6.00pm-7.00pm
13.09.2013 Scribe submission deadline is approaching for G18-G23. Submitted scribes are available here.
13.09.2013 Mid Sem Lab Test is on Oct 8.
10.09.2013 Submission deadline of Assignment 6 and the extended deadline of Assignment 4 is on Oct 3 (Hard Deadline).
29.08.2013 Lab Assignment 5 is up.
28.08.2013 Scribe submission deadline for G6-G17 is on 8th September. Find more information here.
27.08.2013 Class Test-1, Date: 28/08/2013, Time: 6.30pm-7.30pm, Venue: Room# 107, 119, 120.
16.08.2013 Room# 119 (CSE) is our New classroom from 19/08/2013.
15.08.2013 Lab Assignment 4 has been uploaded.
12.08.2013 Scribe submission deadline is approaching. Find more information here.
2.08.2013 Find the groups for the laboratory classes here. In case of any discrepancy, contact Tanwi Mallick, Sudakshina Dutta and Anshul Singhle.
1.08.2013 Please find the groups for scribing here. Two students have been assigned for each class for scribing. One has to submit a report in doc format and another one has to submit the corresponding ppt slides. You should spend a significant amount of time while preparing those scribes. Copy/Paste business between the report and slides are strictly prohibited. Slides must look like the lecture slides (sample here) and reports must represent the corresponding lecture notes.

Theory

       Lectures
       Evaluation
       Assignments

Laboratory

       Study Materials
       Assignments

Theory

General Information

Lectures : MON(08:30-09:30), TUE(11:30-12:30), WED(10:30-11:30)
Tutorial : WED(6.00pm-7.00pm)
Room # : 119 (CSE)
Units : 3-0-2
Credits : 3 (Theory)
Contact : Room #315 (CSE), Phone 82358

Important!: Class attendance is mandatory! Any time your attendance falls below 85%, you have 100% chance of being de-registered irrespective of your class performance, CGPA etc!

Attendance Policy

If you are not present in the class (or do not respond), when I call by your name (may be randomly or sequentially....surprise!), you will lose 1.5 credit (instead of one) for the attendance for that week. If that happens twice in a week, you will be marked as absent for the entire week (i.e. you will lose all the three credits for attendance for that week).

Text Books (Theory and Lab):

[1]  Aho, A. V., Sethi, R. and Ullman, J. D.
     Compilers - Principles, Techniques and Tools
     Addison-Wesley
    

[2] Advanced Compiler Design Implementation
    Steven S. Muchnick
    Elsevier, 2003

[3] System Software: An Introduction to Systems Programming
    Leland L. Beck,  Addison-Wesley.
  
[4] Systems Programming,  John J. Donovan, 
    McGraw - Hill Education	

Evaluation

Teacher's Assessment : 20
        Assignment/Scribing : 5
        Class Test I : 5
        Class Test II : 5
        Attendance/Class Performance : 5

Mid-sem : 30

End-sem : 50

Lectures

The lecture notes are unedited version of student submission.
01. 23.07.13 - Introduction. ppt 11CS10054, 11CS1002
02. 24.07.13 - Introduction. ppt 11CS10003, 11CS10004
03. 29.07.13 - Introduction. ppt 11CS10005, 11CS10006
04. 30.07.13 - Compiler Overview. ppt 11CS1007, 11CS1008
05. 31.07.13 - Compiler Overview. ppt 11CS10009, 11CS10010
06. 05.08.13 - Lexical Analyzer. ppt 11CS10011, 11CS10012
07. 06.08.13 - Token, Lexeme, Regular Expression. ppt 11CS10013, 11CS10015
08. 07.08.13 - Token Recognition, State Machine. ppt 11CS10016, 11CS10017
09. 12.08.13 - DFA and NFA simulation. ppt 11CS10019, 11CS10020
10. 13.08.13 - Thompson's Construction, Subset Construction. ppt 11CS10055, 11CS10022
11. 14.08.13 - Syntax Analysis, CFG. ppt 11CS10023, 11CS10056
12. 19.08.13 - Top Down Parser. ppt 11CS10025, 11CS10026
13. 20.08.13 - Predictive Parser. ppt 11CS10028, 11CS10029
14. 21.08.13 - LL(1) Grammar, Predictive Parser. ppt 11CS10030, 11CS10031
15. 26.08.13 - Predictive Parsing Table. ppt 11CS10032, 11CS10033
16. 27.08.13 - Error Handling. ppt 11CS10034, 11CS10037
17. 28.08.13 - Bottom Up Parser. ppt 11CS10038, 11CS10039
18. 02.09.13 - Shift-Reduce Parser. ppt 11CS10040, 11CS10057
19. 03.09.13 - Operator Precedence Parser. ppt 11CS10042, 11CS10043
20. 04.09.13 - Precedence Encoding and LR Parser. ppt 11CS10044, 11CS10045
21. 09.09.13 - LR(0) automaton. ppt 11CS10046, 11CS10058
22. 10.09.13 - SLR Parser. ppt 11CS10048, 11CS10049
23. 11.09.13 - SLR Parser, Parsing Table. ppt 11CS10061, 11CS10052
24. 07.10.13 - Viable Prefix, Limitations of SLR. ppt 11CS30001, 11CS30002
25. 08.10.13 - LR(1) Parser. ppt 11CS30004
26. 09.10.13 - LR(1) Parser, LALR. ppt 11CS30005, 11CS30006
27. 21.10.13 - Syntax Directed Definition. ppt 11CS30008, 11CS30009
28. 22.10.13 - SDD, Inherited attributes, Dependency graph. ppt 11cs30010, 11cs30011
29. 23.10.13 - S-attributed and L-attributed SDD, Evaluation. ppt11cs30013, 11cs30014
30. 23.10.13 - Tutorial: LR, LALR Parsers11cs30015
31. 28.10.13 - SDD with side effect and Syntax Tree, Syntax directed Translation. ppt 11CS30016, 11cs30017
32. 29.10.13 - Syntax directed Translation, Postfix SDT, LR parser. ppt 11cs30018, 11cs30019
33. 30.10.13 - Intermediate Code Generation, DAG. ppt 11cs30021
34. 30.10.13 - Tutorial: Implementation: L-attributed SDD and LL Parsers. 11CS30023
35. 04.11.13 - Three address code: Assignment Expression. ppt 11cs30024, 11cs30026
36. 05.11.13 - Three address code: Control Statement. ppt 11cs30029
37. 06.11.13 - Three address code: Control Statement. ppt 11cs30032
38. 06.11.13 - Tutorial: Three address code: Example (While), Variable Declaration, Type Checking. 11cs30033
39. 11.11.13 - Three address code: Array. ppt 11cs30034, 11cs30035
40. 12.11.13 - Target code Generation, Basic Blocks, Flow graph. ppt 11cs30036, 11cs30037
41. 13.11.13 - Target code Generation: Next use, Register Allocation ppt 11cs30038
42. 14.11.13 - Target code Generation: Algorithm.

Theory Assignments

1. Assignment

Laboratory (CS39003)

General Information

Lab venue and time : Software Lab (CSE), TUE (13.30-16.30)
Lab Tutorial : CSE-107, TUE (14.30-15.30)
Units : 3-0-2
Credits : 2 (Lab)

Study Materials

1. Assembler design
2. 86 Assembly/GAS Syntax - Wikibooks, open books for an open world
3. OpCode of the programming language Intel Assembly 80x86
4. Guide to x86 Assembly
5. Using Assembly Language in Linux
6. MacroProcessor design
7. Lex tutorial
8. Lex sample code
9. YACC tutorial
10. YACC and L-attributed SDD Reference 1 and Reference 2

General Guidelines

Lab Assignments

1. 25.07.2013 - Assignment 1
2. 01.08.2013 - Assignment 2
3. 08.08.2013 - Assignment 3
4. 15.08.2013 - Assignment 4
5. 29.08.2013 - Assignment 5
6. 10.09.2013 - Assignment 6
7. 10.10.2013 - Assignment 7
8. 24.10.2013 - Assignment 8
9. 05.11.2013 - Assignment 9