Lectures

Date Lecture Topic(s) Homework (for next class)
2024-11-13 23 Code Generation
Starter Code
  • Readings:
    • Sections 9-9.3 of Scott
    • Optional: Chapter 15 of Scott
  • Reading Quiz 17 (Gradescope)
  • Rest up...P5 coming next week!
2024-11-11 22 Operational Semantics Wrapup
Code Generation
  • Readings:
    • Sections 5.1-5.4 of Scott (available here)
  • Reading Quiz 16 (Gradescope)
  • P5 coming very soon
  • Instructions to prepare for Wednesday's class will be shared via a Canvas announcement
2024-11-06 21 Interpretation
Operational Semantics Part 2
2022-03-28 20 Interpretation
Operational Semantics
  • Readings:
    • Sections 6-6.1, 6.3-6.5 of Scott
  • Reading Quiz 14 Due next Monday (Gradescope)
  • P4 due: 2024-11-11 (Gradescope) UPDATED!
2024-10-30 19 Exam 2
  • Readings:
    • Sections 4-4.1 and Chapter 7 of Scott (Use the reading quiz to focus your reading)
  • Reading Quiz 12 & 13 (Gradscope) — Both due Monday
  • P4 due: 2024-11-08 (Gradescope coming soon)
  • 2024-10-28 18 Semantic Analysis
    Type Systems
    2024-10-23 17 Semantic Analysis
    Scoping
    2024-10-21 16 From Parse Tree to AST
    Using PLY
    • Readings:
      • Start reading Chapter 3 of Scott
    • P4 due 2024-11-08 (Gradescope)
    2024-10-16 15 Early Parsing (Dynamic Programming)
    Parsing Table (LaTeX source)
    Parsing Table
    From Parse Tree to AST
    • Readings:
    • Reading Quiz 11 (Gradescope)
    • P3 due 2024-10-16 (Gradescope)
    • Enjoy Break!
    2024-10-14 14 Finish SL-LEX Parser (token_reader.py)
    Removing Left Recursion
    Early Parsing (Dynamic Programming)
    2024-10-09 13 Left Recursion in Grammars
    Implementing Recursive Descent Parsing
    • Readings:
      • None
      • Reading Quiz 10 extended to Monday
    • P3 due 2024-10-16 (Gradescope)
    2024-10-07 12 Left and Right Derivations
    Ambiguity in Grammars
    Recursive Descent Parsing
    2024-10-02 11 Exam 1
    • Readings:
      • Sections 2.3 (stop before 2.3.1), 2.4.2-2.4.3 of Scott (partly available here)
    • Reading Quiz 9 (Gradescope) due next Monday
    • P3 due 2024-10-16 (Gradescope)
    2024-09-30 10 DFAs
    Parsing
    Context-Free Grammars
    • Study for exam
      • You may bring a reference sheet (both sides of a 8.5x11 piece of paper)
    • Readings:
      • Sections 2.3 (stop before 2.3.1), 2.4.2-2.4.3 of Scott (partly available here)
    • Reading Quiz 9 (Gradescope) due next Monday
    • P3 due 2024-10-16 (Gradescope)
    2024-09-25 9 JFlex wrap-up
    Finite Automata
    Automata in code
    2024-09-23 8 Lexical Analysis
    Lexical Analyzer Generators
    JFlex example
    2024-09-18 7 Snail Language
    Lexical Analysis
    Regular Expressions
    • Readings:
      • Sections 2-2.2 of Scott
    • Reading Quiz 7 (Gradescope)
    • Reading Quiz 6 (Gradescope) extended to 2024-09-20
    • P1b due 2024-09-18 (Gradescope)
    • P2 due 2024-09-27 (Gradescope coming soon!)
    2024-09-16 6 Types of Recursion
    Implementing a Programming Language
    Snail Programming Language
    • Readings:
      • Sections 1.4-1.7 of Scott
      • Getting Started, Language Basics, and Built-In Classes in the snail documentation
    • Reading Quiz 6 (Gradescope)
    • P1b due 2024-09-18 (SLUGS)
    • Attend Tuesday's Q-Club at Noon in Bloomer Auditorium with James McGuinness & Associates (take selfie for bonus point)
    2024-09-11 5 Higher-Order Functions
    List processing functions
    2024-09-09 4 Recursion/List Practice
    Pattern Matching
    Variant Types
    Trees as variants
    • Readings:
    • Reading Quiz 4 (Gradescope)
    • P1a due 2024-09-11 (Gradescope)
    2024-09-04 3 Features of a Functional Language
    Tuples
    Lists
    Recursion
    • Readings:
      • Scott Section 6.6 (Available on Sakai Resources)
      • Chapters 9, 10, 12, 14, 16 of Exploring ReasonML
      • Reason Documentation (Try to find the material we covered in class and read more about it)
      • Optional: Scott Section 11.6
    • Reading Quiz 3 (Gradescope)
    • P1a due 2024-09-11 (Gradescope autograder coming soon)
    2024-09-02 2 Intro to Reason
    Types
    Creating a project
    2024-08-28 1 Introduction to Programming Languages
    Programming Paradigms
    Intro to Reason