Lambda Calculus, review Grammar:
and beta reductions:
structural operational semantics “why can’t we have logical rules to explain how programs execute?” bold type judgment \begin{equation} A \vdash e :t \end{equation} “under environment A for the free variables of e, the entirety of e has type t” value judgment \begin{equation} E \vdash e \to v \end{equation} “under environment E assigning values to the free variables in e, e will reduce to the value of v” value A value in computation is a subset of programs that can’t be further reduced. In particular, some pure lambda abstraction \lambda x . e is a value. value judgment evaluations Under a call-by-value scheme—we will first reduce function arguments. variables
(i.e. the value of a variable can just be looked up) integer
application
abstractions
state OMG side effect smh state