CS 541 Lecture -*- Outline -*- * Untyped lambda calculus advert: closer match to LISP more powerful than simply typed calculus, allows self-application saves notation ** The language (syntax) ------------------------ UNTYPED LAMBDA CALCULUS CONCRETE SYNTAX e in Expr x in Identifier e ::= x | \x . e | e e | (e) ABSTRACT SYNTAX e in Expr x in Identifier e ::= x | (\x . e) | (e e) --------------------------- same parsing conventions as typed language ** substitution and equational rules same as typed language ** What's different? self-application is allowed, for example (x x) is a term can't type check in the simply typed language this permits all computations, including the Y combinator ------------------ CHURCH'S THESIS All computable functions are definable in the (untyped) lambda calculus. -------------------