Lecture 6 Lambda Calculus God created the integers all else is the result of man Leopold Kronecker God created application all else is the result of man Alonzo Church not really CS655 Programming Languages University of Virginia David Evans Computer Science http www cs virginia edu evans Language Complexity Number of Morphemes Language Complexity and Brain Cell Decay English OED 500 000 words C 680 pages Scheme 50 pages 5 page 0 6 Feb 2001 5 10 15 Years Spent in School CS 655 Lecture 6 20 25 2 Complexity in Scheme Special Forms if cond define etc Primitives If we have lazy evaluation and don t care about abstraction we don t need these Numbers infinitely many Booleans t f Hard to get rid of Functions and or etc Evaluation Complexity Environments more than of our interpreter Can we get rid of all this and still have a useful language 6 Feb 2001 CS 655 Lecture 6 3 calculus Alonzo Church 1940 LISP was developed from calculus not the other way round term variable term term term variable term 6 Feb 2001 CS 655 Lecture 6 4 Mystery Function Teaser p xy pca pca x x xy x x y p x x xy y x x z z xy y y m xy pca pca x x xy x x x x p y m x x xy y x y f x pca pca x x xy x if x 0 x z z xy y 1 x x m x f x x xy y x x f x 1 6 Feb 2001 CS 655 Lecture 6 5 Evaluation Rules reduction renaming y M v M y v where v does not occur in M reduction substitution x M N M x N 6 Feb 2001 CS 655 Lecture 6 6 Identity x y name if x and y are same M1 M2 N1 N2 if M1 N1 M2 N2 if M N x M y N if x y M N M N 6 Feb 2001 CS 655 Lecture 6 7 Defining Substitution x x N N y x N y where x y M1 M2 x N M1 x N M2 x N x M x N x M 6 Feb 2001 CS 655 Lecture 6 8 Defining Substitution y M x N y M x N where x y and y does not appear free in N or x does not appear free in M y M x N z M y z x N where x y z x and z y and z does not appear in M or N x does occur free in M and y does occur free in N 6 Feb 2001 CS 655 Lecture 6 9 Reduction Uninteresting Rules y M v M y v where v does not occur in M M M M N PM PN M N MP NP M N x M x N M N and N P M P 6 Feb 2001 CS 655 Lecture 6 10 Reduction the source of all computation x M N M x N 6 Feb 2001 CS 655 Lecture 6 11 Recall Apply in Scheme To apply a procedure to a list of arguments evaluate the procedure in a new environment that binds the formal parameters of the procedure to the arguments it is applied to We ve replaced environments with substitution We ve replaced eval with reduction 6 Feb 2001 CS 655 Lecture 6 12 Some Simple Functions I x x C xy yx Abbreviation for x y yx CII x y yx x x x x y y x x x x x x x x x x I 6 Feb 2001 CS 655 Lecture 6 13 Evaluating Lambda Expressions redex Term of the form x M N Something that can be reduced An expression is in normal form if it contains no redexes redices To evaluate a lambda expression keep doing reductions until you get to normal form 6 Feb 2001 CS 655 Lecture 6 14 Example f x f xx x f xx 6 Feb 2001 CS 655 Lecture 6 15 Alyssa P Hacker s Answer f x f xx x f xx z z x z z xx x z z xx z z x z z xx x z z xx x z z xx x z z xx z z x z z xx x z z xx x z z xx x z z xx 6 Feb 2001 CS 655 Lecture 6 16 Ben Bitdiddle s Answer f x f xx x f xx z z x z z xx x z z xx x xx x z z xx x xx x xx x xx x xx 6 Feb 2001 CS 655 Lecture 6 17 Be Very Afraid Some calculus terms can be reduced forever The order in which you choose to do the reductions might change the result 6 Feb 2001 CS 655 Lecture 6 18 Take on Faith for now All ways of choosing reductions that reduce a lambda expression to normal form will produce the same normal form but some might never produce a normal form If we always apply the outermost lambda first we will find the normal form is there is one This is normal order reduction corresponds to normal order lazy evaluation 6 Feb 2001 CS 655 Lecture 6 19 Who needs primitives T xy x F xy y if pca pca 6 Feb 2001 CS 655 Lecture 6 20 Evaluation T xy x F xy y if pca pca if T M N pca pca xy x M N ca x y x ca M N x y x M N y M N M 6 Feb 2001 CS 655 Lecture 6 21 Who needs primitives and xy if x y F or xy if x T y 6 Feb 2001 CS 655 Lecture 6 22 Coupling M N z z M N first p p T second p p F first M N p p T z z M N z z M N T z z M N xy x xy x M N M 6 Feb 2001 CS 655 Lecture 6 23 Tupling n tuple M M M0 Mn 1 Mn M0 M1 Mn 1 Mn n tuple direct M0 Mn 1 Mn z z M0 Mn 1 Mn Pi n x x Ui n Ui n x0 xn xi What is P1 2 6 Feb 2001 CS 655 Lecture 6 24 Primitives What about all those pesky numbers 6 Feb 2001 CS 655 Lecture 6 25 What are numbers We need three functions succ n n 1 pred n n 1 zero n n 0 Is that enough to define add 6 Feb 2001 CS 655 Lecture 6 26 Adding for Post Docs add xy if zero x y add pred x succ y 6 Feb 2001 CS 655 Lecture 6 27 Counting 0 I 1 F I 2 F F I 3 F F F I n 1 F n 6 Feb 2001 CS 655 Lecture 6 28 Arithmetic Zero x x T Zero 0 x x T I T Zero 1 x …
View Full Document