CS 480 Schedule

Date
Topic
Notes
Assignments
Jan 28 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 1)
Make Example 1
Make Example 2
Jan 30
Linux, Eclipse, GCC, make, SVN Script simple.c
makefile
testSimple.sh
simple2.out
Feb 1 Symbol Table Projects, Coding Standards
Dynamic Memory&
Eclipse Debugger &
Hash tables

Symbol Table (DUE Feb 13) 
pcc13defines.h
Coding Standards

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

ST Test Cases

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

Feb 6
Ch 2 One pass compiler / Basic Parsing

Feb 8
Ch 2 Symbol Tables

Valgrind Memcheck Help
Feb 11
Ch 3 Lexical Analysis PDF
Feb 13 Lexical Analyzer
Lexical Analyzer (DUE Feb 25)
Lex Test Cases
Feb 15
Virtual Machine
GCC Preprocessor options
Feb 18 Ch 4 PDF CYK
Feb 20


gcc documentation
Feb 22
EXAM ONE


Feb 25
Ch 4 Top Down Parsing
PDF
Top Down Parser (DUE Mar 6)

GNU Option Style
GNU Coding Standards

TD Tests
see Moodle

Feb 27


Error Handling Papers  One  Two
Mar 1
Ch 4 Bottom Up Parsing PDF
Handout Only available from campus,
Principles of Compiler Design, Aho, Ullman
Extra (Free from on campus!)
Compilers Book (pdf page 458 and 752)
deals with Operator Precedence Grammars)
Aho
Ullman
Mar 4
Ch 4 Bottom Up Parsing

Mar 6
Operator Precedence Table Creation

Meet in the CS Lab
BU Precedence Table Form

BU Grammar

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

Mar 8

BU Assignment Discussion
Testing Discussion
Build a Large Test Case - see Moodle
Mar 11
Ch 5 Syntax-Directed Translation PDF
Mar 13

PDF
Mar 15
Semantic Actions 1 PDF Semantic Actions #1 (DUE Apr 3)
Interpreter Description
Interpreter Eclipse Project
SA1 Test Cases
Mar 18
More Semantic Actions / Data Handling (Ch 7) PDF C++ Templates
Software Evolution Research Lab
Name Mangling
Name Mangling 2
Class Hierarchy Eclipse Project
Class Hierarchy Java Eclipse Project
C++ ABI
Elf Description
Elf Spec
45 byte executable
Linux Standard Base C++
Mar 20
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
Mar 22
Ch 8 Intermediate Code Generation PDF
Mar 25
SPRING BRREAK  NO CLASS


Mar 27



Mar 29



Apr 1 Ch 8 Intermediate Code Generation Continued

Apr 3
Semantic Actions 2

Data Handling (Ch 7)


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

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


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

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

Apr 17
Semantic Actions 3 - Control Flow Lab Reverse Engineering
Example

Apr 19


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

Interpreter

Apr 22 Exam Three


Apr 24
Senior Projects Day NO CLASS


Apr 26  Data Handling (Ch 7)
PDF Java Memory Mang Docs (Primary Source)
JDK 7
Garbage First GC (Free from campus)

Java GC Tuning

Java GC Presentation

Java Nice Description


Apr 29


May 1
Ch 9 & 10 Data Flow Analysis & Optimization PDF Examples
May 3
Code Optimization / Data Flow Analysis (Ch 10)

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

Compiler Research / Final Exam Review

Review

May 6
Semantic Actions #3 DEMO IN CLASS SA3 FI
Test Case Map


Interpreter
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 10
Final - 3 PM to 5:30 PM

FINAL REVIEW