CS536-F17 Intro to PLs and Compilers
Room: NOLAND 132
Aws Albarghouthi, instructor
Office hours: Tue, 215-315 pm
Room 6363, Computer Sciences
Hakan Memisoglu, teaching assistant
Sandhya Srinivas, teaching assistant
TA office hours: Fri 1100-1200 in CS 4310
Course descriptionIntroduction to the theory and practice of compiler design. Comparison of features of several programming languages and their implications for implementation techniques. Several programming projects required.
Prereq: CS 367 and either CS 354 or 552.
Course info | Assignments | Resources | Canvas | Piazza (ask questions here)
Textbook and Notes:
- There are links to an extensive set of notes, as well as to copies of the PowerPoint presentations used in class in the table of lectures below.
- The course has no required textbook. If you would like to
have a textbook to consult for another viewpoint on the subject,
the one I recommend is
- Cooper, K. and Torczon, L., Engineering a Compiler. Morgan-Kaufmann.
LecturesNote: Dates for topics, particularly for the second half of the course, should be considered tentative.
Slides for every week will be available on Mondays in pdf and ppt formats.
Here is a sample midterm and its solution
You can find homework solutions here -- each folder has a hwX_soln.html file with the solution of the hwX.
🔥 🔥 🔥 Here is a sample final exam and its solution
|Week||Dates||Topics||Slides | Notes||Assigned||Other|
|1||9/7||Course overview||pdf | ppt | notes||P1|
|2||9/12,14||Finite-state machines||pdf | ppt | notes||HW1||Automata Tutor||NFAs||pdf | ppt | notes||Examples (ppt | pdf)|
|3||9/19,21||Scanner generators||pdf | ppt | notes||HW2||Context-free grammars||pdf | ppt | notes|
|4||9/26,28||Context-free grammars (ambiguity)||pdf | ppt | notes||HW3, P2|
|Syntax-directed translation||pdf | ppt | notes|
|5||10/3,5||Java CUP||pdf | ppt | notes||HW4||Examples|
|Parsing||pdf | ppt | notes|
|6||10/10,12||Topdown parsing||pdf | ppt | notes||HW5,|
|Topdown parsing (cont'd)||pdf | ppt | notes||P3|
|7||10/17,19||SDT for predictive parsing||pdf | ppt | notes||HW6|
|Static-semantic analysis||pdf | ppt | notes|
|9||10/31; 11/2||LR parsing||pdf | ppt | notes||HW7, P4|
|Types||pdf | ppt|
|10||11/7,9||Runtime environments||pdf | ppt | notes||HW8|
|11||11/14,16||Parameter passing||pdf | ppt | notes||HW9|
|Variable accesses||pdf | ppt | notes|
|12||11/21,23||Code generation||pdf | ppt | notes||P5|
|13||11/28,30||Code generation (cont'd)||pdf | ppt | notes|
|Code generation (cont'd)||pdf | ppt | notes|
|14||12/5,7||Optimization||pdf | ppt | notes||P6, HW10|
|SSA form and dataflow analysis||
pdf-2 | ppt-2 | notes
|12/18||Final exam||2:45 - 4:45 in NOLAND 132||Weeks 7-15|