User Tools

Site Tools


cc18:top

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Compiler Construction 2018 ====== [[https://mycourses.rit.edu/d2l/home/686189 | Mycourses Webpage]] **Instructor:** [[https://www.cs.rit.edu/~hh/|Hossein Hojjat]] **Email:** hh at cs rit edu ** Office hours (GOL-3545):**\\ * Tu 11am – 12am * Th 11am - 12am **Lectures:** MoWeFr 9:05AM-10:00AM (GOL-3560) **Final Exam:** 05/02/2018 (8:00 A - 10:00 AM) , Place: GOL-3560 **Description & Policies:**\\ [[https://www.cs.rit.edu/SemesterConversion/common.html|CS Common Course Policies]]\\ [[cc18:grading_policies|Grading Policies]]\\ [[cc18:assignment_policies|Assignment & Homework Policies]] **Acknowledgements:**\\ Portions of this course material based upon similar courses offered by Viktor Kuncak **Book:**\\ [[http://www.cs.princeton.edu/~appel/modern/ | Modern Compiler Implementation in Java]] **Language for Compiler Project:**\\ [[cc17:eminijava|Extended MiniJava (eMiniJava)]] ===== Course Materials ===== ==== Week 1 ==== | Wednesday 01/17 | [[cc18: Lecture 1| Lecture 1: Course Overview ]] | {{ :cc18:lectures:lect1:main.pdf | Slides}} | | Friday 01/19 | [[cc18: Lecture 2| Lecture 2: Describing Syntax ]] | {{ :cc18:lectures:lect2:main.pdf | Slides }} | ==== Week 2 ==== | Monday 01/22 | [[cc18: Lecture 3| Lecture 3: Introduction to Regular Expressions ]] | {{ :cc18:lectures:lect3:main.pdf | Slides }} | | Wednesday 01/24 | [[cc18: Lecture 4| Lecture 4: Manual Construction of Lexers ]] | {{ :cc18:lectures:lect4:main.pdf | Slides }} | | Friday 01/26 | [[cc18: Lecture 5| Lecture 5: Automatic Construction of Lexers ]] | {{ :cc18:lectures:lect5:main.pdf | Slides }} | [[cc18: Assignment 1| Assignment 1 (Interpreter for While-Language) ]] ==== Week 3 ==== | Monday 01/29 | [[cc18: Lecture 6| Lecture 6: DFA vs. NFA ]] | {{ :cc18:lectures:lect6:main.pdf | Slides}} | | Wednesday 01/31 | [[cc18: Lecture 7| Lecture 7: Building Efficient Lexers ]] | {{ :cc18:lectures:lect7:main.pdf | Slides }} | | Friday 02/02 | [[cc18: Lecture 8| Lecture 8: Introduction to Syntax Analysis ]] | {{ :cc18:lectures:lect8:main.pdf | Slides }} | [[cc18:assignment_2| Assignment 2 (Lexical Analysis)]] ==== Week 4 ==== | Monday 02/05 | [[cc18: Lecture 9| Lecture 9: Ambiguous Grammars ]] | {{ :cc18:lectures:lect9:main.pdf | Slides }} | | Wednesday 02/07 | [[cc18: Lecture 10| Lecture 10: Top-Down vs. Bottom-up Parsing ]] | {{ :cc18:lectures:lect10:main.pdf | Slides }} | | Friday 02/09 | [[cc18: Lecture 11| Lecture 11: Grammar Transformations ]] | {{ :cc18:lectures:lect11:main.pdf | Slides }} | ==== Week 5 ==== | Monday 02/12 | [[cc18: Lecture 12| Lecture 12: Recursive-Descent Parsers ]] | {{ cc18:lectures:lect12:main.pdf | Slides }} | | Wednesday 02/14 | [[cc18: Lecture 13| Lecture 13: Predictive Parsing Table Construction ]] | {{ :cc18:lectures:lect13:main.pdf | Slides }} | | Friday 02/16 | [[cc18: Lecture 14| Lecture 14: Introduction to Shift/Reduce Parsing ]] | {{ :cc18:lectures:lect14:main.pdf | Slides}} | [[cc18:assignment_3| Assignment 3 (Syntax Analysis)]] ==== Week 6 ==== | Monday 02/19 | [[cc18: Lecture 15| Lecture 15: LR(0) Parsing ]] | {{ :cc18:lectures:lect15:main.pdf | Slides}} | | Wednesday 02/21 | [[cc18: Lecture 16| Lecture 16: SLR, LR(1) and LALR ]] | {{ :cc18:lectures:lect16:main.pdf | Slides }} | | Friday 02/23 | [[cc18: Lecture 17| Lecture 17: Chomsky Normal Form (CNF) ]] | {{ :cc18:lectures:lect17:main.pdf | Slides }} | ==== Week 7 ==== | Monday 02/26 | [[cc18: Lecture 18| Lecture 18: Cocke-Younger-Kasami (CYK) ]] | {{ :cc18:lectures:lect18:main.pdf | Slides }} | | Wednesday 02/28 | [[cc18: Lecture 19| Lecture 19: Introduction to Name Analysis ]] | {{ :cc18:lectures:lect19:main.pdf | Slides }} | | Friday 03/02 | class cancelled due to snow | [[cc18:assignment_4| Assignment 4 (Name Analysis)]] ==== Week 8 ==== | Monday 03/05 | [[cc18: Lecture 20| Lecture 20: Name Analysis Implementation ]] | {{ :cc18:lectures:lect20:main.pdf | Slides }} | | Wednesday 03/07 | Midterm Review | | Friday 03/09 | Midterm Exam | ==== Week 9 ==== Spring Break - No Classes ==== Week 10 ==== | Monday 03/19 | [[cc18: Lecture 21| Lecture 21: Introduction to Type Checking ]] | {{ :cc18:lectures:lect21:main.pdf | Slides }} | | Wednesday 03/21 | [[cc18: Lecture 22| Lecture 22: Type Checking Implementation ]] | {{ :cc18:lectures:lect22:main.pdf | Slides }} | | Friday 03/23 | [[cc18: Lecture 23| Lecture 23: More Type Rules ]] | {{ :cc18:lectures:lect23:main.pdf | Slides }} | [[cc18:assignment_5| Assignment 5 (Type Checking)]] ==== Week 11 ==== | Monday 03/26 | [[cc18: Lecture 24| Lecture 24: Subtyping ]] | {{ :cc18:lectures:lect24:main.pdf | Slides }} | | Wednesday 03/28 | [[cc18: Lecture 25| Lecture 25: More Subtyping Rules ]] | {{ :cc18:lectures:lect25:main.pdf | Slides }} | | Friday 03/30 | [[cc18: Lecture 26| Lecture 26: Introduction to Code Generation ]] | {{ :cc18:lectures:lect26:main.pdf | Slides }} | ==== Week 12 ==== | Monday 04/02 | [[cc18: Lecture 27| Lecture 27: Code Generation for Expressions ]] | {{ :cc18:lectures:lect27:main.pdf | Slides }} | | Wednesday 04/04 | [[cc18: Lecture 28| Lecture 28: A Primer on Jasmin ]] | {{ :cc18:lectures:lect28:main.pdf | Slides }} | | Friday 04/06 | [[cc18: Lecture 29| Lecture 29: Code Generation for Control Structures ]] | {{ :cc18:lectures:lect29:main.pdf | Slides }} | [[cc18:assignment_6| Assignment 6 (Code Generation)]] ==== Week 13 ==== | Monday 04/09 | [[cc18: Lecture 30| Lecture 30: Control Structures: Efficient Translation ]] | {{ :cc18:lectures:lect30:main.pdf | Slides }} | | Wednesday 04/11 | [[cc18: Lecture 31| Lecture 31: Introduction to Optimizations ]] | {{ :cc18:lectures:lect31:main.pdf | Slides }} | | Friday 04/13 | [[cc18: Lecture 32| Lecture 32: Control Flow Graphs ]] | {{ :cc18:lectures:lect32:main.pdf | Slides}} | ==== Week 14 ==== | Monday 04/16 | [[cc18: Lecture 33| Lecture 33: Live Variable Analysis ]] | {{ :cc18:lectures:lect33:main.pdf | Slides }} | | Wednesday 04/18 | [[cc18: Lecture 34| Lecture 34: Available Expressions Analysis ]] | {{ :cc18:lectures:lect34:main.pdf | Slides }} | | Friday 04/20 | [[cc18: Lecture 35| Lecture 35: Data-flow Analysis Framework ]] | {{ :cc18:lectures:lect35:main.pdf | Slides }} | [[cc18:assignment_7| Assignment 7 (Optimization)]] ==== Week 15 ==== | Monday 04/23 | [[cc18: Lecture 36| Lecture 36: Range Analysis, Initialization Analysis ]] | {{ :cc18:lectures:lect36:main.pdf | Slides }} | | Wednesday 04/25 | [[cc18: Lecture 37| Lecture 37: Loop Optimizations ]] | {{ :cc18:lectures:lect37:main.pdf | Slides }} | | Friday 04/27 | [[cc18: Lecture 38| Lecture 38: Register Allocation ]] | Slides | ==== Week 16 ==== | Monday 04/30 | Course Conclusion | ---- Last year's edition: [[cc17:top|2017]] ----

cc18/top.1524525012.txt.gz · Last modified: 2018/04/23 19:10 by hossein