Assignment 1 deadline extended + Midterm 1 date pushed to March 9
Slides only provide an outline of the details presented in lectures. They are not a replacement for class notes or readings from the textbook or other sources.
Stony Brook University single sign-on (i.e., SBU NetID) is needed to access the slides.
Unit 1: Foundations and Language Design: language paradigms; compilation pipeline; language design principles; syntax specification; lexical analysis
Unit 2: Parsing and Semantic Analysis: top-down and bottom-up parsing; parser generators; attribute grammars; symbol tables; scopes and name resolution; type checking overview
Unit 3: Names, Bindings, and Scopes: names and bindings; scope and visibility; closures; referencing environments; dynamic scoping; modules and namespaces
Unit 4: Data Types and Type Systems: type safety, type checking, type inference; polymorphism and generics; type compatibility; algebraic data types; pattern matching; dependent types
Unit 5: Control Flow and Expressions: evaluation order; l-values and r-value; referential transparency; iteration vs. recursion; exception handling; continuation
Unit 6: Subprograms and Parameter Passing: procedures and functions; parameter passing mechanisms; nested subprograms; currying
Unit 7: Object-Oriented Programming: dynamic dispatch and virtual method tables; inheritance and mixins; variance; Liskov substitution principle
Unit 8: Functional Programming: pure functions; list processing; lazy evaluation; infinite data structures; monads; type classes; algebraic effects
Unit 9: Logic Programming and Memory Management: Prolog basics; stack vs heap allocation; garbage collection; RAII and smart pointers
Unit 10: Code Generation: intermediate representations; basic concepts of code generation and optimization
Jan 26. Monday. Class cancelled due to snowstorm
Jan 28. Wednesday.
Feb 02. Monday.
Principles of Language Design [ slides ]
Feb 04. Wednesday.
Syntax: grammars, abstract trees, and ambiguity [ slides ]
Feb 09. Monday.
Syntax and Lexical Analysis: regular expressions, tokenization, and finite automata [ slides ]
Feb 11. Wednesday.
Syntax and Lexical Analysis: regular expressions, tokenization, and finite automata (ctd.) [ slides ]
Feb 16. Monday.
Finite automata (ctd.) [ slides ]
Feb 25. Wednesday.
Top-down Parsing [ slides ]