Week. Lab: Date Lectures Reading Lab

  1. T: Aug 26

  • Scanners
  • Parsers

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

  1. T: Sep 2

  • Top-down Parsers
  • ANTLR4

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

  1. T: Sep 9

  • Abstract Syntax Tree
  • Eclipse JDT

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

  1. T: Sep 16

  • Symbol Table
  • Type Checking
  • Bottom-up Parsers

  • Dragon Ch. 2.7 & Ch. 6.1 - 6.5

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

  1. T: Sep 23

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

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

  1. T: Sep 30

  • Bytecode Optimization

  • Dragon Ch. 8.7

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

  1. T: Oct 7

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

  1. T: Oct 14

  • 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 27)
  • Project M5: Static Analysis (due Nov 10)
  • Demo: ASM Bytecode Viewer Plugin

  1. T: Oct 21

  • 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. T: Nov 4

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

  1. T: Nov 11

  • Exam 3 & 4 Discussion

  1. No Lab

  1. No lab

  1. Thanksgiving Break

  1. T U: Dec 2&4

  • Presentations