MTSU logo

CSCI 4/5160: Compiler Design & Software Development

Sect. 001

Lecture

M W

2:20 – 3:45

COE 141


Tentative Schedule

 

Date

Lecture Topic

Homework & Projects

Week 1

Jan. 15

Jan. 17

Inclement weather: University closed

Week 2

Jan. 22

Introduction: Go over syllabus, how to access projects, COOL programming language

GitCheatSheet

How to access projects

2024 HackMT

Jan. 24

Introduction: COOL programming language (cont.); go over project1; Introduction to complier (Lexical Analysis, Syntax Analysis, Semantic Analysis, Intermediate Code Generation, Target Code Generation)

Project1 assigned (Due: Feb. 5)

Instruction for using Jupyterhub

Week 3

Jan. 29

Lexical Analysis: example of Scanner from scratch, Lexeme and Tokens, regular expression (choice, concatenation, closure/repetition), RE Extensions

Jan. 31

Lexical Analysis: RE Extensions, Exercise on regular expressions

Website to check your regular expression

Week 4

Feb. 5

Flex: Flex input file format Example 1Example 2

Project2 assigned (Due: Feb. 16)

Feb. 7

Flex: Start Condition example

Week 5

Feb. 12

Lexical Analysis: NFA, DFA, Thompson’s construction (RE to NFA), ε-closure function,

Feb. 14

Introduction to Parser: Move function, NFA to DFA (Example), a review of 1st Exam

Week 6

Feb. 19

Bison: CFG, postfix example(.ll file.yy file)

Project3 assigned (Due: Mar. 11)

Feb. 21

First Exam (Introduction, Lexical Analysis, Flex, COOL)  

Week 7

Feb. 26

Bison: Go over exam. Infix example(.ll file.yy file), Location example(.ll file.yy file)

 

Feb. 28

Introduction to Parser: leftmost/rightmost derivation, parse tree, ambiguous CFG, Recursive descent parsing (example)

Week 8

Mar. 4

Spring Break - No Class

Mar. 6

Spring Break - No Class

Week 9

Mar. 11

Top-Down ParsingGo over project4, LL(1) parsing, LL(1) Parsing table

Project4 assigned (Due: Mar. 20)

Mar. 13

Top-Down Parsing: FIRST, FOLLOW, construct parsing table using FIRST and FOLLOW

Week 10

Mar. 18

Bottom-Up Parsing: Exercise on LL(1) parsing, Review for 2nd Exam

 

Mar. 20

Bottom-Up Parsing: LR(0) parsing (LR(0) items, CLOSURE functions)

Project5 assigned (Due: Apr. 3)

Week 11

Mar. 25

Bottom-Up Parsing: GOTO functions, LR(0) automaton, LR(0) parsing table, exercise on LR(0) parsing table and LR(0) parsing

 

Mar. 27

Second Exam (CFG, Top-Down Parsing, Bison, project 3 & 4)

Week 12

Apr. 1

Symbol Table

Apr. 3

Type Checking:

Project6 available

Week 13

Apr. 8

Bottom-Up Parsing:

 

Apr. 10

Bottom-Up Parsing:

Week 14

Apr. 15

Bottom-Up Parsing: review of 3rd exam, exercise on LR parsing

Apr. 17

Runtime Environment:

Optional Project 7

Week 15

Apr. 22

Runtime Environment:

Apr. 24

Third Exam (Symbol table, type checking, bottom-up parsing, project6)

 

Week 16

No Final Exam

 

Class Resources

Syllabus

Please take your time to go through the syllabus carefully and with patience.

$PUB

All class examples, assignments, and source code are available in this directory.