Semantics of Programming Languages
(winter semester 2020-2021)
[cw1] [jam] concrete vs abstract syntax, parsing of numbers, denotational semantics of arithmetic expressions.
[cw1,cw2] [jam] variables, small-step operational semantics of arithmetic expressions, termination, environments.
[cw3] [jam] small-step operational semantics of IMP, looping constructs; binary numbers with addition.
[cw4] [jam] big-step operational semantics of arithmetic expressions and IMP.
[cw5] [jam] eager vs. lazy evaluation in higher-order expressions.
[cw6, cw7] [jam] exceptions, local variables, procedures with an integer parameter (static binding).
[cw7, cw8] [jam] procedures with an integer parameter (dynamic binding; call-by-need); denotational semantics.
[cw8, cw9] [jam] denotational semantics (imperative programs, local variables, functions).