Midterm Exam 2 Prep Material
Topics
- everything from the Midterm 1 topics list
- Higher-order programming
- anonymous functions
- functions as arguments
- map, filter, fold
- the abstraction principle
- formal grammar
- parse trees
- precedence
- associativity
- grammatical ambiguity
- S-expressions
- concrete vs. abstract syntax
- formal semantics
- small-step semantics
- multi-step semantics
- big-step semantics
- semantic judgments
- semantic derivations
- traces
- deterministic vs. non-deterministic semantics
- λ-calculus
- β-reduction
- capture-avoiding substitution
- α-equivalence
- free & bound variables
- normalization vs. non-normalization
- Evaluation strategies
- parameter passing
- small-step CBV semantics
- big-step CBV semantics
- small-step CBN semantics
- big-step CBN semantics
- benefits and downsides to CBV and CBN
- STLC
- typing judgments
- typing derivations
- basic properties of STLC
- type uniqueness
- well-scopedness