CSC 4181 | Compiler Construction | Spring 2019 |
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/15 |
Welcome, Course Overview Accumulator machine example (pdf) |
Th 1/17 | Overview of Compilers, Part 1 (pdf) 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 in-class: 1/31/19 Modified version of checker from class 1/17/19 (checker_v2.html) |
|
2 | T 1/22 |
Overview of Compilers, Part 2 (pdf) CS Help Desk Information (link) Modified version of checker from class 1/22/19 (checker_v3.html) |
Th 1/24 | Overview of Compilers, Review Lab working time Resource: Regexr, a web page for designing and testing regular expressions Modified version of checker from class 1/24/19 (checker_v4.html) |
|
3 | T 1/29 | Lexical Analysis (pdf) Lab working time Modified version of checker from class 1/29/19 (checker_v5.html) |
Th 1/31 |
Lexical Analysis (cont'd) Read for next class: Introduction to Compiler Design, Part 1, Lexical Analysis Lab working
time Modified version of checker from class 1/31/19 (checker_v6.html) |
|
4 | T 2/05 | Lexical Analysis (cont'd) Parse trees, syntax trees, syntax errors, semantic errors (pdf)
Homework 1 - Parse Trees and
Syntax Trees - due Tue. Feb. 12, 2019 |
Th 2/07 | Context Free Grammars (pdf)(pptx) Lab 2 -
Scanner Generation (assignment) |
|
5 | T 2/12 |
Context Free Grammars (cont'd) Lab 2 working time Homework 2 - Parse Trees and Syntax Trees - due Tue. Feb. 19, 2019 Homework 1 due today |
Th 2/14 | Context Free Grammars (cont'd) Lab 2 working time |
|
6 | T 2/19 | Parsing (pdf) Lab 2 working time Review Homework 1 Homework 2 due today |
Th 2/21 |
Parsing (cont'd) Lab 2 due today, demo & eval during class meeting
(note this is an earlier due date) Lab 3 - Parser Generation (assignment) - due Thur. March 21, 2019 |
|
7 | T 2/26 |
Software Engineering (pdf)
(slides 1-20) Review Homework 2 |
Th 2/28 |
No formal class meeting Zoom or Skype meetings as needed for Lab 3 questions Watch the following to gain context on yacc, noting these videos talk about the C version rather than the Java version that we are using. The approach and ideas, however, are identical.
Independent lab working time, Lab 3 set up |
|
8 |
T
3/05 Th 3/07 |
Semester Break - no class meetings |
9 |
T 3/12 |
Software Engineering (cont'd) (slides 21-28) Agile Manifesto (handout) Lab 3 working time
Lab 3 examples we developed in class |
Th 3/14 | Parsing (pdf)(ppt) (cont'd) Lab 3 working time |
|
10 | T 3/19 |
Parsing (cont'd) Lab 3 due today, demonstrate during class meeting Lab 4 - Building a Complete Compiler (assignment) |
Th 3/21 |
Parsing (cont'd) Independent lab 4 working time |
|
11 | T 3/26 |
Parsing (cont'd) Handout: Constructing LL(1) Parsing Tables Homework 3 - Grammars and Parse Tables - due Tue. April 2, 2019 Lab 4 working time |
Th 3/28 |
Parsing (cont'd) Lab 4 working time |
|
12 |
T 4/02 |
Parsing (cont'd) Homework 3 due today Lab 4 working time |
Th 4/04 | Scope & Symbol Table (pdf) Lab 4 Scanning and Parsing evaluation in class Lab 4 working time, how to incorporate symbol table |
|
13 | T 4/09 | Scope & Symbol Table (cont'd) Lab 4 working time, how to incorporate symbol table |
Th 4/11 | Semantic Analysis (pdf)
(slides 1-13, others for reference) Lab 4 working time, more symbol table and semantic analysis |
|
14 | T 4/16 |
Software Engineering (pdf)
(slides 29-62) (selected coverage) Return Lab 4, Part 1 Review Homework 3 Lab 4, how to use tools for adding code generation to your compiler Software Engineering videos:
SCRUM
in under 10 minutes (8:00) [produced by
Axosoft] Handout: Agile Software Development (see 3/12/19) Ungraded 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. |
Th 4/18 | Easter Break - no class meeting | |
15 | T 4/23 | Code Generation & Optimization (pdf) Lab 4 Symbol Table & Semantic Analysis Evaluation Lab 4 working time, how to add code generation |
Th 4/25 | Code Generation & Optimization (cont'd) Software Engineering (pdf) (slides 63-81) [time permitting] Lab 4 working time, adding code generation |
|
17 | T 4/30 | "Friday" - our class does not meet |
Th 5/02 | Lab 4 Code Generation Evaluation Alternative: Lab 4
Code Generation e-Evaluation via email possible (deadline 5/06/19 at 11:00
am) - e-CATS (first 10 minutes)
|
|
F 5/03 | READING DAY | |
16 |
S 5/04 |
001 Sat. May 4, 2019, 1:30-4:00 002 Mon. May 6, 2019, 8:30-11:00 |
Last updated: 05/03/2019