CSC324H1 Lecture Notes - Lambda Calculus, Intel Core (Microarchitecture), Abstract Syntax Tree
Document Summary
Syntax vs semantics: (a (b) c (d e (f g) (h))) = s-expression a(b(), c, d(e, f(g), h())) = term. [ a", [ b"], c", [ d", e", [ f", g"], [ h"]]] = python list (a b () (c ((d e)) (f)) = s-expression. So typically: special semantics => special syntax (not always the case though) Anything that can be replicated by a function call is eager. If something cant, then it is not eager. Side effects are things that you execute for an effect other than return value. F(1) is like (call f 1 ) Lambda calculus (lc) is one minimal foundation for computable functions. Semantics: evaluating a program in the core model: possible value of an expression: One of the booleans true or false. The void value: it can also produce side-effects. If condition true then result is consequent, else it is alternative.