University of Virginia Computer Science CS150: Computer Science, Fall 2005 (none) 26 October 2005

## CS150 Notes 27 (26 October 2005)

#### Upcoming Schedule

• Today, 7:30PM: A Mathematician Reads the Newspaper, John Allen Paulos (Physics 203)
Structured like a newspaper, the talk and the book on which it's based investigate the mathematical angles of stories in the news and offer novel perspectives, questions, and ideas to those who can't get along without their daily paper.
• Monday, 31 October: Problem Set 6
Notes
Universal Turing Machine

A Turing Machine that can simulate any other Turing Machine on an input: TMU (P, I) = the output of running TM-P on input I

What is a calculus?

What properties make Scheme too complex to be a good model of computation?

Lambda Calculus is a set of rules for manipulating symbols. They can be given meanings that map well to computation.

Lambda Calculus Term Grammar

term ::= variable
term ::= term term
term ::= ( term )
term ::= λ variable . term

Rules

Alpha Reduction: (renaming variables)
λ y . Mα λ v . M [y |→ v]) where v does not occur in M.
We can change the name of a lambda variable by replacing all occurances of the variable in the body term with a new name that does not appear in the body term.

Beta Reduction: (substitution)

x . M) Nβ M [ x |→ N ]
All computation can be modeled using Beta Reduction!
Uninteresting Reduction Rules

MM
PMPN if MN
MPNP if MN
λ x . M → λ x . N → if MN
M → P if MN and N → P

Identity and Composition

I ≡ λ x . x
C ≡ λ x .y . yx)

CII = (λx.(λy. yx)) (λx.x) (λx.x)
→β

Example

λ f . ((λ x . f (xx)) (λ x . f (xx)))

(Note: you may need some more space to finish this one.)

"); print ( \$res[\$first] ) ; print (""); ?>