Lectures

Date Lecture Topic(s) Homework (for next class)
2022-05-04 29 Scripting snail
Project Work Time
Final Class
  • P5 due: 2022-05-13 (SLUGS)
2022-05-02 28 AMA
Course Evaluations
Project Work Time
  • P5 due: 2022-05-13 (SLUGS)
2022-04-27 27 Exam 3
  • P5 due: 2022-05-13 (SLUGS)
2022-04-25 26 Multi-Language Projects Day 2
Makefile
Exam Review
2022-04-20 25 Multi-Language Projects
Makefile
2022-04-18 24 Debuggers
2022-04-13 23 Code Generation 2, Electric Boogaloo
Starter Code
  • Readings:
    • No new readings
  • P5 due: 2022-05-13 (SLUGS)
2022-04-11 22 Code Generation
Starter Code
  • Readings:
    • Sections 9-9.3 of Scott
    • Optional: Chapter 15 of Scott
  • Reading Quiz 17 (Gradescope)
  • Begin reading P5 (and snail) spec. Full assignment releasing on Wednesday.
2022-04-06 21 Operational Semantics Wrapup
Code Generation
Starter Code
  • Readings:
    • Sections 5.1-5.4 of Scott (available here)
  • Reading Quiz 16 (Gradescope)
  • P5 coming very soon
2022-04-04 20 Interpretation
Operational Semantics Part 2
  • Readings:
  • Reading Quiz 15 (Gradescope)
  • P4 due: 2022-04-05 (SLUGS) Updated with 15 submissions a day
2022-03-30 19 Exam 2
  • Readings:
    • Sections 6-6.1, 6.3-6.5 of Scott
  • Reading Quiz 14 Due next Monday (Gradescope)
  • P4 due: 2022-04-03 (SLUGS)
2022-03-28 18 Interpretation
Operational Semantics
2022-03-23 17 Semantic Analysis
Type Systems
  • Exam 2 on March 30
  • Readings:
    • Sections 4-4.1 and Chapter 7 of Scott (Use the reading quiz to focus your reading)
  • Reading Quiz 13 (Gradescope)
  • P4 due: 2022-04-03 (SLUGS)
  • Prepare software for Monday's class:
  • Practice Exercises:
2022-03-21 16 Semantic Analysis
Scoping
  • Exam 2 on March 30
  • Readings:
    • Chapter 3 of Scott
  • Reading Quiz 12 (Gradescope)
  • P4 due: 2022-04-03 (SLUGS)
2022-03-09 15 From Parse Tree to AST
Using PLY
  • Readings:
    • None (but you might want to start reading Chapter 3 of Scott)
  • Hidden Figures extra credit (Gradescope)
2022-03-07 14 Early Parsing (Dynamic Programming)
From Parse Tree to AST
Parsing Table (LaTeX source
Parsing Table
2022-03-02 13 Left Recursion in Grammars
Implementing Recursive Descent Parsing token_reader.py
  • Readings:
    • None
  • P3 due 2022-03-06 (SLUGS)
  • Hidden Figures extra credit (Gradescope)
2022-02-28 12 Ambiguity in Grammars
Recursive Descent Parsing
2022-02-23 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 2022-03-06 (SLUGS)
2022-02-21 10 Parsing
Context-Free Grammars
  • Study for exam
    • You may bring a reference sheet (both sides of a 8.5x11 piece of paper)
    • You may write programs using your laptop, but may not reference the web.
  • 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 2022-03-06 (SLUGS)
2022-02-14 9 JFlex wrap-up
Finite Automata
Automata in code
2022-02-14 8 Lexical Analysis
Lexical Analyzer Generators
JFlex example
 jflexExample.zip
2022-02-09 7 Lexical Analysis
Regular Expressions
  • Readings:
    • Sections 2-2.2 of Scott
  • Reading Quiz 7 (Gradescope)
  • P1b due 2022-02-09 (SLUGS)
  • P2 due 2022-02-18 (SLUGS)
2022-02-07 6 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 2022-02-09 (SLUGS)
2022-02-02 5 Types of Recursion
Higher-Order Functions
2022-01-31 4 Recursion/List Practice
Pattern Matching
Variant Types
Trees as variants
  • Readings:
  • Reading Quiz 4 (Gradescope)
  • P1a due 2022-02-02 (SLUGS)
2022-01-26 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 2022-02-02 (SLUGS) due date extended!
2022-01-24 2 Intro to Reason
Types
Creating a project
  • Readings:
  • Reading Quiz 2 (Gradescope)
  • P1a due 2022-01-31 (SLUGS)
2022-01-19 1 Introduction to Programming Languages
Programming Paradigms
Intro to Reason