CS 480 Schedule

Date
Topic
Notes
Assignments
Jan 31 Syllabus, Class Overview, Compiler Project Overview, Project ZERO Overview Current SVN Notes
Intro
C Coding Style Template for Eclipse
CS Lab FAQ
Assignment ZERO (DUE Feb 4)
Make Example 1
Make Example 2
Feb 2 Linux, Eclipse, GCC, make, SVN Script simple.c
makefile
testSimple.sh
simple2.out
Feb 4 Symbol Table Projects, Coding Standards
Dynamic Memory&
Eclipse Debugger &
Hash tables

Symbol Table (DUE Feb 16) 
pcc11defines.h
Coding Standards

Symbol Table Tests
The following file contains 3 test
cases with output.

ST Test Cases

Feb 7
Ch 1 Introduction to Compiling (Tool chain) PDF
#!
A case against syntax highlighting

Feb 9
Ch 2 One pass compiler / Basic Parsing
Feb 11
Ch 2 Symbol Tables

Valgrind Memcheck Help
Feb 14
Ch 3 Lexical Analysis PDF
Feb 16 Lexical Analyzer Lexical Analyzer (DUE Feb 28)
Lex Tests
The following file contains 3 test
cases with output.

Lex Test Cases
Feb 18 Virtual Machine
Feb 21 Ch 4 PDF CYK
Feb 23

gcc documentation
Feb 25
EXAM ONE

Feb 28 Ch 4 Top Down Parsing
PDF
Top Down Parser (DUE Mar 9)

TD Tests
The following file contains 3 test
cases with output.

TD Test Cases

Mar 2

Error Handling Papers  One  Two
Mar 4 Ch 4 Bottom Up Parsing PDF
Handout Only available from campus
Extra (Free from on campus!)
Compilers Book (Ch 5 (pdf page 458)
deals with Operator Precedence Grammars)
Mar 7
Ch 4 Bottom Up Parsing

Mar 9 Operator Precedence Table Creation BU Precedence Table Form

BU Grammar

Bottom Up Parser (DUE Mar 18)
Operator Precedence Table
BU Test Cases

Build a Large Test Case

Mar 11

Mar 14
Ch 5 Syntax-Directed Translation PDF
Mar 16
PDF
Mar 18
Semantic Actions 1 PDF Semantic Actions #1 (DUE Apr 6)
Interpreter Description
Interpreter Eclipse Project
SA1 Test Cases
Mar 21 NO CLASS -- SPRING BREAK
Mar 23
Mar 25

Mar 28
More Semantic Actions / Data Handling (Ch 7) PDF C++ Templates
Software Evolution Research Lab
Name Mangling
Name Mangling 2
Class Heirarchy Eclipse Project
Class Heirarchy Java Eclipse Project
C++ ABI
Elf Description
Elf Spec
45 byte executable
Mar 30 Ch 8 Intermediate Code Generation PDF
Apr 1
Ch 8 Intermediate Code Generation Continued

Apr 4 EXAM TWO Exam Topics:
Top Down Parsing / Left Recursion / Errors
Bottom Up Parsing / Shift-Reduce / Errors
Semantic Rules
Three Address Code
Activation Records
Virtual Function Calls/Tables / Mangling
Associativity
Apr 6
Semantic Actions 2

Data Handling (Ch 7)

Semantic Actions #2 (DUE Apr 22)
SA2 Test Cases

Apr 8
 Intermediate Code Generation II
Simple C-Lite code
No pointers or control flow


Semantic Actions #2 Example
Semantic Actions #2 Solution
Apr 11
Code Generation - Pointers - Arrays - Relational Operators PDF
Solutions
PDF Solutions

Apr 13 Code Generation Math Example
Apr 15
Data Handling (Ch 7) PDF
C++11!
C++11 Discussion
malloc
glibc
Linux Kernel: brk
Thunks
Apr 18 Control Flow Code Generation - if - else - for PDF

Apr 20 Semantic Actions 3 - Control Flow Lab Reverse Engineering
Example
Apr 22

Semantic Actions #3
(DUE May 9, 4:45PM)
Type Checking
SA3 Test Harness
SA3 Test1
FI Test Harness

Interpreter

Apr 25
Apr 27
Senior Projects Day NO CLASS

Apr 29 Control Flow Code Generation /  Data Handling (Ch 7) PDF
May 2 Exam Three
May 4 Ch 9 & 10 Data Flow Analysis & Optimization PDF Examples
May 6 Code Optimization / Data Flow Analysis (Ch 10)

Register Machines / Register Allocation / Peephole optimization (Ch 9) 

Compiler Research / Final Exam Review

Review

May 9
Semantic Actions #3 DEMO IN CLASS SA3 FI
Test Case Map
SA3 Test1
SA3 Test2
SA3 Test3
SA3 Test4
SA3 Test5
SA3 Test6
SA3 Test7
SA3 Test8
FI Test1
FI Test2
FI Test3
FI Test4
FI Test5
FI Test6
FI Test7
FI Test8
May 13
Final - 3 PM to 5:30 PM

FINAL REVIEW
May 21 GRADUATION