Unformatted text preview:

PowerPoint PresentationMenuScientific Discovery Announced over WeekendHow big is .5 MB?Nature vs. C++Slide 6Is DNA Really a Programming Language?Nerdy Linguist’s DefinitionProgramming Language (Definition from Lecture 1)Stuff Programming Languages are Made OfBiology is (becoming) a subfield of Computer SciencePictorial CalculiSlide 13Feynman DiagramsRichard Feynman (1918-1988)Lambda Calculus Summary so FarLambda Calculus IntuitionIn search of the truth?Don’t search for T, search for ifFinding the Truthand and or?What is three-ness?Meaning of NumbersSlide 24Is this enough?Can we define lambda expressions that behave like Zero, zero?, pred and succ?Numbers are Lists...Cons and carCdr too!Null and null?Slide 31CountingArithmeticFactorialSummaryToken Rewards Haiyong – repeatuntil problem in PS1 solution Chris – problem with Prakash’s proof (p. 5).Lecture 8: The Meaning of Life, Searching for Truth and The Stuff Primitives are Made Of (and a smattering of Quantum Physics)David Evanshttp://www.cs.virginia.edu/~evansCS655: Programming LanguagesUniversity of VirginiaComputer Science13 Feb 2001 CS 655: Lecture 8 2Menu•An Important Scientific Discovery! (with major implications for Programming Languages)•Pictorial Calculi•Searching for the Truth•Token Rewards•Manifest is online only today13 Feb 2001 CS 655: Lecture 8 3Scientific Discovery Announced over Weekend•Human genome is about half as big as previously thought – only about 30,000 genes!•Genetic code for 2 humans differs in only 2.1 million genetic letters (4 million bits = 0.5 MB)13 Feb 2001 CS 655: Lecture 8 4How big is .5 MB?•1/3 of a floppy disk•<1% of Windows 2000•Lecture Slides 1, 2 and 313 Feb 2001 CS 655: Lecture 8 5Nature vs. C++•Microsoft Windows 2000: 50M lines of C++ code ~ 5GB of data•Difference between Windows 2000 and Linux: essentially, all 50M lines ~ 5GB.•Nature: Human: 30,000 genes (~3.1B base pairs ~ 1.5GB)•Difference between me and Michael Jordan = 0.5MB13 Feb 2001 CS 655: Lecture 8 6Nature vs. C++•The differences between any two people are at least 1000x more interesting than the differences between Linux and Windows 2000•Hence, nature’s programming language is:5GB/.5MB * 1000 = ~10M times more expressive than C++or ~100,000 times more expressive than Scheme13 Feb 2001 CS 655: Lecture 8 7Is DNA Really a Programming Language?13 Feb 2001 CS 655: Lecture 8 8Nerdy Linguist’s DefinitionA description of pairs (S, M), where S stands for sound, or any kind of surface forms, and M stands for meaning. A theory of language must specify the properties of S and M, and how they are related.13 Feb 2001 CS 655: Lecture 8 9Programming Language(Definition from Lecture 1)A description of pairs (S, M), where S stands for sound, or any kind of surface forms, and M stands for meaning intended to be read and written by humans and processed by machines.13 Feb 2001 CS 655: Lecture 8 10Stuff Programming Languages are Made Of•Primitives•Means of Combination•Means of AbstractionMy best guess: sequence that encodes a protein?? Morphogenesis? Not well understood (by anyone).DNA itself – separate proteins from their encodingGenes – group DNA by function (sort of)Chromosomes – package Genes togetherOrganisms – packages for reproducing GenesThis is where most of the 100Kx improvement over Scheme comes from!?!13 Feb 2001 CS 655: Lecture 8 11Biology is (becoming) a subfield of Computer Science•Biological mechanisms are mostly understood (proteomics still has a way to go)•What is not understood is how those are combined to create meaning•Alex Hartemink (faculty candidate in Computational Biology), Monday 3:3013 Feb 2001 CS 655: Lecture 8 12Pictorial Calculi•Keenan’s paper•Any important pictorial calculi?13 Feb 2001 CS 655: Lecture 8 1313 Feb 2001 CS 655: Lecture 8 14Feynman Diagrams•Pictorial calculi for understanding quantum electrodynamics•Simple notations:electronphoton•Rules for combining and manipulating that calculate electromagnetic interactions13 Feb 2001 CS 655: Lecture 8 15Richard Feynman (1918-1988)•Nobel Prize in Physics, 1965 (for work stemming from Feynman Diagrams)•Leader in quantum computing (PS2)•Leader in nanotechnology•Co-taught computing course using (pre-publication) Wizard book •Every aspiring scientist should read “Surely You’re Joking, Mr. Feynman” and “What Do You Care What Other People Think”13 Feb 2001 CS 655: Lecture 8 16Lambda CalculusSummary so Far•Rules for substitution•Rules for reduction (only -reduction does real work: substitution)•Normal form (no more reductions possible)•On faith: if you do outermost -reduction first, you find the normal form if there is one13 Feb 2001 CS 655: Lecture 8 17Lambda Calculus Intuition•Lambda expression corresponds to a computation•Normal form is that value of that computation•But...can we do useful computations without primitives?13 Feb 2001 CS 655: Lecture 8 18In search of the truth?•What does true mean?•True is something that when used as the first operand of if, makes the value of the if the value of its second operand:if T M N  M13 Feb 2001 CS 655: Lecture 8 19Don’t search for T, search for ifT   xy. x F  xy. y if  pca . pca13 Feb 2001 CS 655: Lecture 8 20Finding the TruthT  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  MPrakash’s proof messed this up (p. 5)!Is the if necessary?13 Feb 2001 CS 655: Lecture 8 21and and or?and  xy. if x y For  xy. if x T y13 Feb 2001 CS 655: Lecture 8 22What is three-ness?3troisIII13 Feb 2001 CS 655: Lecture 8 23Meaning of Numbers•“Three-ness” is something who’s successor is “four-ness”•“Three-ness” is something who’s predecessor is “two-ness”•“Zero” is special. It has a successor “one-ness”, but no predecessor.13 Feb 2001 CS 655: Lecture 8 24Meaning of Numberspred (succ N)  Nsucc (pred N)  Nsucc (pred (succ N))  succ N...zero? Zero  T zero? (succ Zero)  F zero? (pred (succ Zero))  T...13 Feb 2001 CS 655: Lecture 8 25Is this enough?•Can we define add with pred, succ, zero? and Zero?add  xy.if (zero? x) y (add (pred x) (succ y))13 Feb 2001 CS 655: Lecture 8 26Can we define lambda expressions that behave likeZero, zero?, pred and succ?Hint: what if we had cons and cdr?13 Feb


View Full Document

UVA CS 655 - Lecture 8

Download Lecture 8
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 Lecture 8 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 Lecture 8 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?