Week. Lab: Date Lectures Reading Lab

  1. T: Aug 20

  • Scanners
  • Parsers

  • Course Overview
  • Install Sireum IVE
  • Set up private repos

  1. U: Aug 29

  • Top-down Parsers
  • ANTLR4

  • Project M1: Scanner & Parser (due Sep 11)
  • Demo: Sireum IVE & ANTLRv4 Plugin

  1. U: Sep 5

  • Abstract Syntax Tree
  • Eclipse JDT

  • Exam 1: Scanners, Parsers & Top-Down Parsers

  1. U: Sep 12

  • Symbol Table
  • Type Checking
  • Bottom-up Parsers

  • Dragon Ch. 2.7 & Ch. 6.1 - 6.5

  • Project M2: Abstract Syntax Tree (due Sep 25)
  • Exam 1 Discussion
  • Demo: JDT AstView Plugin

  1. U: Sep 19

  • Virtual Machine
  • Code Generation: Eclipse JDT to Java bytecode using ASM

  • Exam 2: AST, Symbol Table, and Type Checking

  1. U: Sep 26

  • Bytecode Optimization

  • Dragon Ch. 8.7

  • Project M3: Type Checking (due Oct 9)
  • Exam 2 Discussion

  1. U: Oct 3

  • 706 Presentation Topics
  • 801 Final Project (due Dec 16)

  1. U: Oct 10

  • Static Analysis – Overview
  • Static Analysis – Control Flow Graph (CFG)
  • Static Analysis – Reaching Definition

  • Nielson-Nielson-Hankin Ch. 1
  • Dragon Ch. 9

  • Project M4: Bytecode Generation (due Oct 23)
  • Project M5: Static Analysis (due Nov 6)
  • Demo: ASM Bytecode Viewer Plugin

  1. U: Oct 17

  • Static Analysis – Classic Problems
  • Static Analysis – Monotone Dataflow Framework

  • Nielson-Nielson-Hankin Ch. 2
  • Dragon Ch. 9

  • Exam 3: Virtual Machine, Bytecode Generation, and Bytecode Optimization

  1. No Lab

  1. U: Oct 31

  • Exam 4: Static Analysis – CFG, Reaching Definition, Classic Problems, and Monotone Dataflow Framework

  1. U: Nov 7

  • Exam 3 & 4 Discussion

  1. No Lab

  1. No lab

  1. Thanksgiving Break

  1. T U: Dec 3 & 5

Presentations

  • Dec 3: TBA
  • Dec 5: LLVM