COURSE SCHEDULE

Tentative schedule:

1
Week Date Topic Readings Posted Materials Items Due
1Aug. 23 Course Overview Introductory slides, history of programming languages (light), history of programming languages (complex), phases of compilation, sample layout of memory, recording
Aug. 25 Functional Languages Part III Alternative Programming Models, page 533
Chapter 11, Functional Languages, sections 1, 2, 8 & 9, pages 535-537, 581-584
Slides, notes, recording
Aug. 27 Lab 1: Scheme Chapter 11, section 11.3, pages 539-550 Slides, syntax sheet, lab 1, sample answers
2Aug. 30 Language Characteristics and Compilation Chapter 1, Introduction, pages 5-37 Slides, notes, class exercises, answers, recording
Sept. 1 Regular Expressions Chapter 2, Programming Language Syntax, sections 1 & 4, pages 43-48, 103-105 Slides, notes, class exercises, answers, recording
Sept. 3 Lab 2: Scheme Lab 2, answers Language and team choosen for langauge workshop
3Sept. 6 Labor Day - No Class
Sept. 8 Translation of Regular Expressions to Non-Deterministic Finite Automaton then to Deterministic Finite Automaton Section 2.2.1, page 56-61 Slides, notes, class exercises, answers, recording
Sept. 10 Lab 3: Scheme Lab 3, sample answers, recording Lexical Analyzer - Regular expressions
2020 assignment, sample answers: regular expressions, NFA, DFA, homework 1, answers
4Sept. 13 Translation of DFA to a Minimal DFA Section 2.2.1, pages 56-61 Notes, class exercises, answers recording
Sept. 15 Industry Advisory Meeting - no class
Sept. 17 Language Workshop Go: presentation, workshop, paper
MatLab: presentation, workshop, paper, other
Language workshop, homework 2, answers
5Sept. 20 Scanning - Ad Hoc and Table Driven Section 2.2, pages 54-56
Section 2.2.2, 2.2.3 & 2.2.4, pages 61-67
Slides, notes, class exercises, answers, recording
Sept. 22 Context Free Grammars Section 2.1.3, pages 50-53 Slides, notes, class exercises, answers Homework 3, answers
Sept. 24 Exam 1 Review, 2020 exam, answers, exam, answers, recording of going over exam
6Sept. 27 Precedence and Associativity in Context Free Grammars Section 2.1.3, page 50-53
Sept. 29 Parsing Pages 69-73
Oct. 1 Language Workshop Language workshop
7Oct. 4 Recursive Descent (Top-Down) Parsing via subroutines Pages 73-78
Oct. 6 Pointers and References (sample construct/service presentation) Chapter 8, pages 377-389
Oct. 8 Lab 4: C#, WinForms and WPF Lexical Analyzer - DFA
8Oct. 11 Recursive Descent Parsing, Table Driven Pages 82-88
Oct. 13 Logic Programming and Prolog - Introduction
Oct. 15 Lab 5: Prolog Service or construct and team choosen for presentation
9Oct. 18 Bottom-Up Parsing Pages 89-94
Oct. 20 Writing an LL(1) Grammar Pages 79-82
Oct. 22 Lab 6: Prolog Lexical Analyzer - Python version
10Oct. 25 Predict Sets Pages 88-89
Oct. 27 Review
Oct. 29 Exam 2
11Nov. 1 Type Systems Chapter 7, pages 297-304
Nov. 3 Binding Times Chapter 3, pages 115-125
Nov. 5 Lab 7: Scheme Lexical Analyzer
12Nov. 8 Object Lifetimes Chapter 3, pages 115-125
Nov. 10 Scope Pages 125-135
Nov. 12 Lab 8: Prolog Lexical Analyzer in C#
13Nov. 15 Attribute Grammars Chapter 4, pages 184-195
Nov. 17 Langauge Service or Construct Presentations
Nov. 19 Langauge Service or Construct Presentations
14Nov. 22 Evaluating Attribute Grammers Section 4.3, pages 182-191
Nov. 24 Thanksgiving - No Class
Nov. 26 Thanksgiving - No Class
15Nov. 29 Action Routines Pages 152-157
Dec. 1 Building a Runnable Program Chapter 15, pages 775-780, 784-787
Dec. 3 Review and Course Reflection Lexical analyzer in Scheme
FinalsDec. 8 Final Exam, Wednesday, 11:30am-1:30pm (2:30pm if needed)