EECE 5183/6083: Compiler Theory/Compiler Laboratory

I look forward to working with you this spring semester. If we all work together, we can make this a fruitful and productive semester. I am hopeful that this will be a great experience for all of us. In this class you will be required to attend and participate in classroom discussions and write a compiler. There are no other homework or exams scheduled. I have outlined a target set of dates for the completion, however other than the final deadlines for the compiler (outlined below), these are merely suggested completion dates that you are advised to target. Good luck. I tend to keep my Tues/Thurs schedule open for student meetings and I work research on MWF so it is much harder to get me to respond on MWF. That said, please feel free to approach me on M/W/F. Just be advised that when i get deep into my research I can be somewhat less than friendly. Please do not take this personal, its just how i work. You can also learn more about my weekly schedule from my google calendar (follow the My Schedule; link in the navigation panel of my dept webpage).

I may occasionally post an announcement on the class canvas webpages. Otherwise, everything besides lectures that you will need for this class is available from my university webpages.


Planning

This course requires strong programming skills. If you are not a strong programmer that is able to build, debug, and manipulate complex data structures, you should strongly consider looking for an alternate course. I will not be helping you with the programming of your compiler solution (beyond discussing the general techniques for implementing a compiler).


Textbook Readings

  1. Chapters 1 & 2: (quick read/skim)
  2. Chapter 3: Good overview of lexical analysis
  3. Chapter 4.3.3: Eliminating Left Recursion
  4. Chapter 4.4: Recursive Decent Parsing
  5. Chapter 2.7: Symbol Table Mgmt
  6. Chapter 2.8: (and specifically 2.8.4) Code Generation

Class Notes


Student Assessment and Grading


Project Description