Schedule

CIS 706/801: Translator Design I & II, Fall 2023


  • Canvas

    • Lecture Slides

    • Lecture Videos


Week. Lab: Date

Lectures

Reading

Lab

Remarks

  1. T: Aug 22

  • Scanners

  • Parsers

  • Dragon Ch. 1 - 2.3 & Ch. 3

  • IntelliJ documentations & tutorials

  • Git documentations & tutorials

  • JUnit documentation & tutorials

Course Overview

  1. T: Aug 29

  • Top-down Parsers

  • ANTLR4

  • Dragon Ch. 2.4 - 2.9 & Ch. 4

  • ANTLR4 Book/Documentation

Project M1: Scanner & Parser (due Sep 11, 11:59pm, US Central)

  1. T: Sep 5

  • Abstract Syntax Tree

  • Eclipse JDT

Exam 1: Scanners, Parsers & Top-Down Parsers

  1. T: 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, 11:59, US Central)

Exam 1 Discussion

  • Demo: JDT AstView Plugin

  1. T: Sep 19

  • Virtual Machine

  • Code Generation: Eclipse JDT to Java bytecode using ASM

  • Dragon Ch. 6.6 - 6.9 & Ch. 8.1-8.6

Exam 2: AST, Symbol Table, and Type Checking

  1. T: Sep 26

  • Bytecode Optimization

Project M3: Type Checking (due Oct 9, 11:59pm, US Central)

Exam 2 Discussion

  1. T: Oct 3

706 Presentation Topics

801 Final Project (due Dec 16, 11:59pm, US Central)

  1. T: 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, 11:59pm, US Central)

  • Demo: ASM Bytecode Viewer Plugin

  1. T: 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

Project M5: Static Analysis (due Nov 6, 11:59pm, US Central)

  1. T: Oct 31

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

  1. T: Nov 7

Exam 3 & 4 Discussion

  1. No Lab

  1. Thanksgiving Break

  1. T: Nov 28

706 Presentations – Xtext & textX

  1. T: Dec 5

706 Presentation – Langium

801 Presentation – ESJ-to-Rust Transpiler

  1. F: Dec 15

  • 801 Final Project Due