Topics studied include formal description of programming languages, lexical analysis, syntax analysis, semantic analysis, symbol tables and memory allocation and code generation. Students undertake a semester project that includes the design and implementation of a compiler for a language chosen by the instructor.
(https://www.cs.stonybrook.edu/students/Undergraduate-Studies/courses/CSE304)
Instructor: Dr. Christopher Kane
Office: New Computer Science Building, Rm. 107
Office hours: Thursday: 4:00 - 6:00 PM, Friday: 3:30 - 5:00 PM, or by appoinment - on Zoom
Email: christopher.kane@stonybrook.edu
Week | Date | Lecture Topics/Notes | Readings |
1 | Mon. 01/23 | Course Intro | Ch. 1 |
Wed. 01/25 | Regular Expressions and Scanners | 2.1-2.3 | |
Assignment 01, Assigned: Wednesday, 01/25/2023 | |||
2 | Mon. 01/30 | Implementing Scanners | 2.4-2.7 |
Wed. 02/01 | Finite Automata | n/a | |
3 | Mon. 02/06 | Finite Automata (cont.) | n/a |
Wed. 02/08 | Grammars: Parsing | 3.1-3.2 | |
Assignment 02, Assigned: Wednesday, 02/08/2023 Assignment 01, Due: Sunday, 02/12/2023 | |||
4 | Mon. 02/13 | Top-Down Parsing | 3.3 |
Wed. 02/15 | LR Parsers | 3.4 | |
5 | Mon. 02/20 | LR Parser Family; Ambiguity, Conflicts, and Errors | 3.5-3.7 |
Wed. 02/22 | Parser Construction | n/a | |
6 | Mon. 02/27 | Intermediate Representations, Scopes | 5.1-5.5 |
Wed. 03/01 | Syntax Directed Definitions, Type Checking, Type Inference | 4.1-4.5 | |
Assignment 02, Due: Wednesday, 03/01/2023 Assignment 03, Assigned: Wednesday, 03/01/2023 |
|||
7 | Mon. 03/06 | Type Checking (cont.) | n/a |
Wed. 03/08 | Midterm Exam 01 | n/a | |
8 | Mon. 03/13 | Spring Break | n/a |
Wed. 03/15 | Spring Break | n/a | |
9 | Mon. 03/20 | Procedure Abstraction | Ch. 6 |
Wed. 03/22 | Runtime Storage Organization | 7.1-7.7 | |
10 | Mon. 03/27 | Intermediate Code Generation | 7.8-7.10 |
Wed. 03/29 | Intermediate Code Generation (cont.) | n/a | |
Assignment 03, Due: Wednesday, 03/29/2023 Assignment 04, Assigned: Wednesday, 03/29/2023 |
|||
11 | Mon. 04/03 | Data Flow Analysis | 8.6.1, 9.1-9.4 |
Wed. 04/05 | Data Flow Analysis (cont.) | n/a | |
12 | Mon. 04/10 | Static Single Assignment Form | 5.4, 9.3 |
Wed. 04/12 | Register Allocation | 13.1-13.5 | |
Assignment 04, Due: Wednesday, 04/12/2023 Assignment 05, Assigned: Wednesday, 04/12/2023 |
|||
13 | Mon. 04/17 | Register Allocation (cont.) | n/a |
Wed. 04/19 | Catch-Up Day | n/a | |
14 | Mon. 04/24 | Midterm Exam 02 | n/a |
Wed. 04/26 | Instruction Selection | Ch. 11 | |
15 | Mon. 05/01 | Instruction Scheduling | Ch. 12 |
Wed. 05/03 | Code Optimization | 8.1-8.4 | |
Assignment 05, Due: Sunday, 05/07/2023 | |||
Final | FINAL EXAM: Wednesday, May 17th, 2023, 11:15 AM - 1:45 PM |