COURSE SCHEDULE

Tentative schedule:

1
Week Date Topic Readings Posted Materials Items Due
1Aug. 26 Course Overview Introductory slides, phases of compilation, notes, lexical analyzer assignments
Aug. 28 Functional Languages Part III Alternative Programming Models, 533
Functional Languages, 535
Section 11.1 Historical Origins, 536-537
Section 11.2 Functional Programming Concepts, 537-539
Section 11.8 Functional Programming in Perspective, 581-583
Section 11.9 Summary and Concluding Remarks, 583-584
Slides, notes
Aug. 30 Lab 1: Scheme Chapter 11, Section 11.3 A Bit of Scheme, 539-550 Scheme Language, more slides, lab 1, answers
2Sept. 2 Labor Day - No Class
Sept. 4 Language Characteristics and Compilation Chapter 1 Introduction, 5-37 Slides, notes, class exercises, answers
Sept. 6 Lab 2: Scheme Lab 2, answers Lab 1, answers
3Sept. 9 Regular Expressions Chapter 2 Introduction, 43-44
Section 2.1 Specifying Syntax: Regular Expressions and Context-Free Grammars, 44-45
Section 2.1.1 Tokens and Regular Expressions, 45-48
Section 2.4 Theoretical Foundations, 103-105
Slides, notes, class exercises, answers
Sept. 11 Translation of Regular Expressions to Non-Deterministic Finite Automaton then to Deterministic Finite Automaton Section 2.2.1 Generating a Finite Automaton, page 56-61 Slides, notes, class exercises, answers
Sept. 13 Lab 3: Scheme Lab 3, answers Homework 1, answers, lab 2, answers
4Sept. 16 Translation of DFA to a Minimal DFA Section 2.2.1 Generating a Finite Automaton, page 56-61 Notes, class exercises, answers
Sept. 18 Scanning - Ad Hoc and Table Driven Section 2.2 Scanning, pages 54-56
Section 2.2.2 Scanner Code, pages 61-65
Section 2.2.3 Table-Driven Scanning, pages 65
Section 2.2.4 Lexical Error, page 65-67
Slides, notes, class exercises, answers
Sept. 20 Advisory Board Meeting - No Class
5Sept. 23 Go over homework and lab Homework 2, answers, lab 3, answers
Sept. 25 Context Free Grammars Section 2.1.3, page 50-53 Slides, notes, class exercises, answers Regular expressions, sample answers
Sept. 27 Exam 1 Review, 2018 exam, answers, exam, answers
6Sept. 30 Precedence and Associativity in Context Free Grammars Section 2.1.3, page 50-53 Notes, class exercises, answers
Oct. 2 Parsing Pages 69-73 Slides
Oct. 4 Lab 4: C# with WPF Slides, lab 4, possible background picture (jpg) NFA & DFA, sample answer NFA 1st, 2nd, sample answer DFA 1st, 2nd, 3rd, 4th, 5th Extra items: decimals with identifiers, show errors
7Oct. 7 Recursive Descent (Top-Down) Parsing via subroutines Pages 73-78 Notes, class exercises
Oct. 9 Recursive Descent Parsing, Table Driven Pages 82-88
Oct. 11 Language Workshop #1 & #2 Language Workshops
8Oct. 14 Predict Sets Pages 88-89 Slides, notes, class exercise
Oct. 16 Design Discussions for Lexical Analyzer
Oct. 18 Language Workshop #3 & #4 Language Workshops, homework 3, answers
9Oct. 21 Pointers and References Chapter 8, pages 377-389 Slides, notes
Oct. 23 Logic Programming and Prolog - Introduction Chapter 12, pages 591-604 & 612-617
Section 12.1 Logic Programming Concepts
Section 12.2 Prolog, but not imperative control flow or database manipulation
Section 2.3 Theoretical Foundations to the end
Slides
Oct. 25 Lab 5: Prolog Slides, lab 5, answers Homework 4, answers
10Oct. 28 Type Systems Slides, notes
Oct. 30 Writing an LL(1) Grammar Pages 79-82 Notes, class exercise, answers
Nov. 1 Lab 6: Prolog Lab 6, answers Homework 5, answers, lexical analyzer in C#, states for sample table 1st, 2nd (thank you Jacob V.), 3rd, sample xlsx scanner table (thanks again Jacob), corresopnding xlsx token table (xlsx), feedback
11Nov. 4 Bottom-Up Parsing Pages 89-94
Nov. 6 Exam 2 Review, 2018 exam, answers, exam, answers
Nov. 8 Lab 7: Scheme - Reading a CSV file Lab 7, answers Homework 6, answers
12Nov. 11 Veteran's - No Class
Nov. 13 Bottom-Up Parsing Code Pages 95-103
Nov. 15 Lab 8: Prolog Lab 8 Lexical analyzer in Python
13Nov. 18 Binding Times Chapter 3, pages 115-125 Slides, notes, class exercise, answers
Nov. 20 Object Lifetimes Chapter 3, pages 115-125 Notes
Nov. 22 Langauge Construct, Service or System Presentations Language Service, Construct or Framework Presentations
14Nov. 25 Scope Pages 125-135 Notes, class exercise, answers
Nov. 27 Thanksgiving - No Class
Nov. 29 Thanksgiving - No Class
15Dec. 2 Referencing Environments Pages 152-157 Notes
Dec. 4 Semantic Analysis and Attribute Grammars Chapter 4, pages 175-182 Slides, notes, class exercise, answers Lexical analyzer in Scheme
Dec. 6 Review
FinalsDec. 11 Final Exam, Wednesday, 11:30am-1:30pm (2:30pm if needed) Review, 2018 exam, answers