Week | Date | Topic | Readings | Posted Materials | Items Due | |
---|---|---|---|---|---|---|
1 | Aug. 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 | |||
2 | Aug. 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 | 1 | ||
Sept. 3 | Lab 2: Scheme | Lab 2, answers | Language and team choosen for langauge workshop | |||
3 | Sept. 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 |
|||
4 | Sept. 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 | |||
5 | Sept. 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 | ||||
6 | Sept. 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 | |||
7 | Oct. 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 | |||
8 | Oct. 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 | |||
9 | Oct. 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 |
|||
10 | Oct. 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 | ||||
11 | Nov. 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 | ||||
12 | Nov. 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# | |||
13 | Nov. 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 | |||
14 | Nov. 22 | Evaluating Attribute Grammers | Section 4.3, pages 187-194 | Class exercise, answers | ||
Nov. 24 | Thanksgiving - No Class | |||||
Nov. 26 | Thanksgiving - No Class | |||||
15 | Nov. 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 | |||
Finals | Dec. 8 | Final Exam, Wednesday, 11:30am-1:30pm (2:30pm if needed) | Review, 2020 exam 4, answers |