UVA CS 150 - Computing with Glue and Photons

Unformatted text preview:

1David Evanshttp://www.cs.virginia.edu/evansCS150: Computer ScienceUniversity of VirginiaComputer ScienceLecture 40: Lecture 40: Computing Computing with Glue and with Glue and PhotonsPhotonsThe Tinkertoy Computer and Other Machinationsby A. K. Dewdney http:// www.amazon. com/exec/o bidos/tg/deta il/-/071672491X/ 103-4408705-53 67831?v=g lance2Lecture 40: Computing with Glue and PhotonsEquivalent Computers?z z zz z z z1StartHALT), X, L2: look for (#, 1, -¬), #, R¬(, #, L(, X, R#, 0, -Finite State Machine...Turing Machine≡term = variable | term term| (term)| λλλλ variable . termλy. M ⇒αλv. (M [y v])where v does not occur in M.(λx. M)N ⇒βM [ x N ]ααLambda Calculus3Lecture 40: Computing with Glue and PhotonsLambda Calculus is a Universal Computer?z z z z z z z z z z z z z z z zz z z z1StartHALT), X, L2: look for (#, 1, -¬), #, R¬(, #, L(, X, R#, 0, -Finite State Machine• Read/Write Infinite TapeMutable Lists• Finite State MachineNumbers• ProcessingWay to make decisions (if)Way to keep going4Lecture 40: Computing with Glue and PhotonsWhat is 42?42forty-twoXLIIcuarenta y dos5Lecture 40: Computing with Glue and PhotonsMeaning of Numbers• “42-ness” is something who’s successor is “43-ness”• “42-ness” is something who’s predecessor is “41-ness”• “Zero” is special. It has a successor“one-ness”, but no predecessor.6Lecture 40: Computing with Glue and PhotonsMeaning of Numberspred (succ N) → Nsucc (pred N) → Nsucc (pred (succ N)) → succ Nzero? zero → Tzero? (succ zero) → F27Lecture 40: Computing with Glue and PhotonsIs this enough?Can we define add with pred, succ, zero? and zero?add ≡ λxy.if (zero? x) y (add (pred x) (succ y))8Lecture 40: Computing with Glue and PhotonsCan we define lambda terms that behave likezero, zero?, pred and succ?Hint: what if we had cons, car and cdr?9Lecture 40: Computing with Glue and PhotonsNumbers are Lists...zero? ≡ null?pred ≡ cdrsucc ≡ λ x . cons F xThe length of the list corresponds to the number value.10Lecture 40: Computing with Glue and PhotonsMaking Pairs(define (make-pair x y) (lambda (selector) (if selector x y))) (define (car-of-pair p) (p #t)) (define (cdr-of-pair p) (p #f)) 11Lecture 40: Computing with Glue and Photonscons and carcons ≡ λx.λy.λz.zxycons M N = (λx.λy.λz.zxy) M N→β(λy.λz.zMy) N→βλz.zMNcar ≡ λp.p Tcar (cons M N) ≡ car (λz.zMN) ≡ (λp.p T) (λz.zMN)→β(λz.zMN) T →βTMN →β(λxy. x) MN →β(λy. M)N →βMT ≡ λxy. x12Lecture 40: Computing with Glue and Photonscdr too!cons ≡ λxyz.zxy car ≡ λp.p Tcdr ≡ λp.p Fcdr cons M Ncdr λz.zMN = (λp.p F) λz.zMN→β(λz.zMN) F→βFMN →βN313Lecture 40: Computing with Glue and PhotonsNull and null?null ≡ λx.Tnull? ≡ λx.(x λy.λz.F)null? null → λx.(x λy.λz.F) (λx. T)→β(λx. T)(λy.λz.F)→βT14Lecture 40: Computing with Glue and PhotonsNull and null?null ≡ λx.Tnull? ≡ λx.(x λy.λz.F)null? (cons M N) → λx.(x λy.λz.F) λz.zMN→β(λz.z MN)(λy.λz.F)→β(λy.λz.F) MN→βF15Lecture 40: Computing with Glue and PhotonsCounting0 ≡ null1 ≡ cons F 02 ≡ cons F 13 ≡ cons F 2...succ ≡ λx.cons F xpred ≡ λx.cdr x16Lecture 40: Computing with Glue and Photons42 = λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. y λxy.(λz.z xy) λxy. yλxy.(λz.z xy) λxy. y λx.T17Lecture 40: Computing with Glue and PhotonsLambda Calculus is a Universal Computerz z z z z z z z z z z z z z z zz z z z1StartHALT), X, L2: look for (#, 1, -¬), #, R¬(, #, L(, X, R#, 0, -Finite State Machine• Read/Write Infinite Tape Mutable Lists• Finite State Machine Numbers to keep track of state• Processing Way of making decisions (if)☯ Way to keep goingWe have this, butwe cheated using ≡to make recursive definitions!18Lecture 40: Computing with Glue and PhotonsWay to Keep Going(λ 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))→β...This should give you some belief that we might be able to do it. We won’t cover the details of why this works in this class.419Lecture 40: Computing with Glue and PhotonsLambda Calculus is a Universal Computerz z z z z z z z z z z z z z z zz z z z1StartHALT), X, L2: look for (#, 1, -¬), #, R¬(, #, L(, X, R#, 0, -Finite State Machine• Read/Write Infinite Tape Mutable Lists• Finite State Machine Numbers to keep track of state• Processing Way of making decisions (if) Way to keep going20Lecture 40: Computing with Glue and PhotonsEquivalent Computers!z z zz z z z1StartHALT), X, L2: look for (#, 1, -¬), #, R¬(, #, L(, X, R#, 0, -Finite State Machine...Turing Machineterm = variable | term term| (term)| λλλλ variable . termλy. M ⇒αλv. (M [y v])where v does not occur in M.(λx. M)N ⇒βM [ x N ]ααLambda Calculuscan simulatecan simulate21Lecture 40: Computing with Glue and PhotonsUniversal Computer• Lambda Calculus can simulate a Turing Machine– Everything a Turing Machine can compute, Lambda Calculus can compute also• Turing Machine can simulate Lambda Calculus (we didn’t prove this)– Everything Lambda Calculus can compute, a Turing Machine can compute also• Church-Turing Thesis: this is true for any other mechanical computer also22Lecture 40: Computing with Glue and PhotonsNormal Steps• Turing machine:– Read one square on tape, follow one FSM transition rule, write


View Full Document

UVA CS 150 - Computing with Glue and Photons

Documents in this Course
Objects

Objects

6 pages

Load more
Download Computing with Glue and Photons
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Computing with Glue and Photons and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Computing with Glue and Photons 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?