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, sample answers

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, recording 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 Recording, recording of more work with grammars
Sept. 29 Parsing Pages 69-73 Notes, class exercises, answers, recording
Oct. 1 Language Workshop F#: presentation, workshop, paper
Lua:
Language workshop
7Oct. 4 Recursive Descent (Top-Down) Parsing via subroutines Pages 73-78 Slides, notes, class exercises, answers, recording
Oct. 6 Pointers and References (sample construct/service presentation) Chapter 8, pages 377-389 Slides
Oct. 8 Lab 4: C#, WinForms and WPF Slides, lab 4 Lexical Analyzer - DFA, sample NFA, sample DFA, homework 4, answers
8Oct. 11 Recursive Descent Parsing, Table Driven Pages 82-88 Notes, class exercises, answers, recording
Oct. 13 Logic Programming and Prolog - Introduction Slides, notes, recording
Oct. 15 Lab 5: Prolog Slides, notes, lab 5, sample answers, recording Service or construct and team choosen for presentation, homework 5, answers
9Oct. 18 Predict Sets Pages 88-89 Slides, notes, class exercise, answers, recording
Oct. 20 Writing an LL(1) Grammar Pages 79-82 Notes, class exercise, answers, recording
Oct. 22 Lab 6: Prolog Lab 6, answers Lexical Analyzer - Python version, few test cases: test1.txt, test2.txt, test3.txt, test4.txt
homework 6, answers
10Oct. 25 Bottom-Up Parsing Pages 89-94 Slides, notes, exercise, answers, recording
Oct. 27 Review Homework 7, answers
Oct. 29 Exam 2 Review, 2020 exams: exam 2, answers, exam 3, answers (We haven't covered the material for questions 1, 2, 3, and 11.), exam, answers
11Nov. 1 Type Systems Chapter 7, pages 297-304 Slides, notes, quiz, answers
Nov. 3 Binding Times Chapter 3, pages 115-125 Slides, notes, class exercise, answers
Nov. 5 Lab 7: Scheme Lexical Analyzer Slides on imperative features of Scheme, lab 7, lab7_test.csv, scanningTable.csv, tokenTable.csv, keywordTable.txt, answers
12Nov. 8 Object Lifetimes Chapter 3, pages 115-125 Slides, notes, class exercise, answers, recording
Nov. 10 Scope Pages 125-135 Slides, notes, class exercise, answers, recording
Nov. 12 Lab 8: Prolog Lab 8, answers Homework 8, answers, lexical Analyzer in C#
13Nov. 15 Attribute Grammars Chapter 4, pages 179-187 Slides, notes, class exercise, answers
Nov. 17 Langauge Service or Construct Presentations Exceptions and Error Handling, Rayn Hessler and Brandon Mitchell, slides, paper

Virtual Machines, Trevor Osborne and Ed Pantoja, slides, paper
Service or capability presentations
Nov. 19 Langauge Service or Construct Presentations Initialization and Finalization,Matt Gallagher and John Nelson, slides, paper

Inheritance,Nathan Blankenship paper
Service or capability presentations homework 9, answers
14Nov. 22 Evaluating Attribute Grammers Section 4.3, pages 187-194 Class exercise, answers
Nov. 24 Thanksgiving - No Class
Nov. 26 Thanksgiving - No Class
15Nov. 29 Action Routines Pages 195-200 Follow-up exercise from last time, answers, notes, slides
Dec. 1 Building a Runnable Program Chapter 15, pages 775-780, 784-787 Slides, notes
Dec. 3 Review and Course Reflection Reflection Lexical analyzer in Scheme homework 10, answers
FinalsDec. 8 Final Exam, Wednesday, 11:30am-1:30pm (2:30pm if needed) Review, 2020 exam 4, answers