CSE 304 - Compiler Design

Spring 2023

Syllabus


Course Description

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)

Staff

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


Class Time and Place

  • Monday/Wednesday: 2:40 - 4:00 PM
  • Old CS, Rm. 2311

Lecture Schedule, Readings, Assignments

The following schedule is tentative and subject to change. The homework assignments are posted on Blackboard: http://blackboard.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


Last Update: January 22, 2023
Page maintained by Christopher Kane