CSC 4181  Compiler Construction  Spring 2017 
Sections 001 & 002 
SCHEDULE 
Dr. Thomas Way 
Schedule is subject to change during the semester. Please check
the online version on the course website from time to time. 
# 
Date 
Topics, Assignments,
Activities 

1 
T 1/17 
Welcome, Course Overview Accumulator machine example (pdf) 
Th 1/19  Overview of Compilers, Part 1 (pdf)  
2  T 1/24 
Overview of Compilers, Part 2 (pdf) CS Help Desk Information (link) Lab 1: Using the framework provided in this checker web page, develop two validation parsers that validate mathematical expressions, as specified in this handout. Feel free to use online resources, including those listed on the class Resources page. Check with me if you would like to use a different programming language to create a validator. Due inclass: 2/02/17 Modified version of checker from class 1/24/17 (checker_v2.html) 
Th 1/26  Overview of Compilers, Review Lab working time Modified version of checker from class 1/26/17 (checker_v3.html) 

3  T 1/31  Lexical Analysis (pdf) Lab working time Modified version of checker from class 1/31/17 (checker_v4.html), shows how to use regular expression matching in "if" statement. 
Th 2/02 
Lexical Analysis (cont'd) Read for next class: Introduction to Compiler Design, Part 1, Lexical Analysis Lab working
time 

4  T 2/07  Lexical Analysis (cont'd) Parse trees, syntax trees, syntax errors, semantic errors (pdf) Homework 1  Parse Trees and Syntax Trees  due Tue. Feb. 14, 2017 Context Free Grammars (pdf) 
Th 2/09  Context Free Grammars (cont'd) CLASS CANCELED due to SNOW 

5  T 2/14 
Context Free Grammars (cont'd) Lab 2 
Scanner Generation (assignment) Homework 2  Parse Trees and Syntax Trees  due Tue. Feb. 21, 2017 Homework 1 due today 
Th 2/16  Context Free Grammars (cont'd) Lab 2 working time 

6  T 2/21  Parsing (pdf) Lab 2 working time Homework 2 due today 
Th 2/23 
Parsing (pdf) Lab 2 due today, demo & eval during class meeting 

7  T 2/28  
Th 3/02 
Software Engineering (cont'd) (slides 2128) Agile Manifesto (handout) Lab 3 
Parser Generation (assignment) 
due Thur. March 23, 2017 

T
3/06 Th 3/08 
Semester Break  no class meetings 

8 
T 3/14 
Parsing (cont'd) CANCELED DUE TO SNOW Lab 3 working time 
Th 3/16  Parsing (pdf)(ppt) (cont'd) Lab 3 working time 

9  T 3/21 
Parsing (cont'd) Lab 3 working time 
Th 3/23 
Parsing (cont'd) Homework 3  Grammars and Parse Tables  due Tue. March 30, 2017 Lab 3 due not due today... postponed to 3/28 

10  T 3/28  Software Engineering (pdf)
(slides 2941) NEW! Lab 3 due today, demonstrate during class meeting 
Th 3/30 
Semantic Analysis (pdf) (slides
122) Homework 3 due today (March 30, 2017) Lab 4  Building a Complete Compiler (assignment) Lab 4 working time 

11  T 4/04 
Semantic Analysis (cont'd) (slides 2347) Lab 4 working time 
Th 4/06  Software Engineering (pdf)
(slides 4262) Lab 4 working time 

12  T 4/11  Software Engineering (selected topics)
SCRUM
in under 10 minutes (8:00) [produced by
Axosoft] Handout: Agile Software Development Assignment: Watch any of the above videos that we did not watch during our class meeting. Try to incorporate topics of Agile, SCRUM and from the Agile Software Development handout from earlier this semester into your Lab 4 work. Lab 4 Scanner and Parser Evaluation 
Th 4/13  Easter Break  no class meeting  
13  T 4/18 
Scope & Symbol Table (pdf) Lab 4 working time,
how to incorporate symbol table 
Th 4/20  Lab 4 working time  
14  T 4/25  Code Generation & Optimization (pdf) Software Engineering (pdf) (slides 6381) Lab 4 working time

Th 4/27  Lab 4 working time Lab 4
Symbol Table Evaluation (cont'd) 

15  T 5/02  "Friday"  our class does not meet 
Th 5/04  Lab 4 Code Generation Evaluation
(cont'd) Alternative: Lab 4
Code Generation eEvaluation via email possible (deadline 5/08/17)  eCATS (Student
Proctor Guide)


F 5/05  READING DAY  
16 
S 5/06 M 5/08 
Sat. May 6, 2017, 1:30pm  4:00pm Mon. May 8, 2017, 8:30 am  11:00 am 
Last updated: 04/21/2017