Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip...
Transcript of Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip...
![Page 1: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/1.jpg)
Faith, Evolution, and ProgrammingLanguages
Philip WadlerUniversity of Edinburgh
TechMesh, London4 December 2012
![Page 2: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/2.jpg)
Evolution
![Page 3: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/3.jpg)
Multiculturalism
![Page 4: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/4.jpg)
Part I
Church: The origins of faith
![Page 5: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/5.jpg)
![Page 6: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/6.jpg)
![Page 7: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/7.jpg)
![Page 8: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/8.jpg)
Gerhard Gentzen (1909–1945)
![Page 9: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/9.jpg)
Gerhard Gentzen (1935) — Natural Deduction
![Page 10: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/10.jpg)
Gerhard Gentzen (1935) — Natural Deduction
![Page 11: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/11.jpg)
Gerhard Gentzen (1935) — Natural Deduction
[A]x···B
⊃-IxA⊃B
A⊃B A⊃-E
B
A B&-I
A&B
A&B&-E0
A
A&B&-E1
B
![Page 12: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/12.jpg)
Simplifying a proof
[B & A]z&-E1
A
[B & A]z&-E0
B&-I
A&B⊃-Iz
(B & A)⊃ (A&B)
[B]y [A]x&-I
B & A⊃-E
A&B
![Page 13: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/13.jpg)
Simplifying a proof
[B & A]z&-E1
A
[B & A]z&-E0
B&-I
A&B⊃-Iz
(B & A)⊃ (A&B)
[B]y [A]x&-I
B & A⊃-E
A&B⇓
[B]y [A]x&-I
B & A&-E1
A
[B]y [A]x&-I
B & A&-E0
B&-I
A&B
![Page 14: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/14.jpg)
Simplifying a proof
[B & A]z&-E1
A
[B & A]z&-E0
B&-I
A&B⊃-Iz
(B & A)⊃ (A&B)
[B]y [A]x&-I
B & A⊃-E
A&B⇓
[B]y [A]x&-I
B & A&-E1
A
[B]y [A]x&-I
B & A&-E0
B&-I
A&B⇓
[A]x [B]y&-I
A&B
![Page 15: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/15.jpg)
Alonzo Church (1903–1995)
![Page 16: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/16.jpg)
Alonzo Church (1932) — Lambda calculus
![Page 17: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/17.jpg)
Alonzo Church (1940) — Typed λ-calculus
[x : A]x···
u : B⊃-Ix
λx. u : A⊃B
s : A⊃B t : A⊃-E
s t : B
t : A u : B&-I
〈t, u〉 : A&B
s : A&B&-E0
s0 : A
s : A&B&-E1
s1 : B
![Page 18: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/18.jpg)
Simplifying a program
[z : B & A]z&-E1
z1 : A
[z : B & A]z&-E0
z0 : B&-I
〈z1, z0〉 : A&B⊃-Iz
λz. 〈z1, z0〉 : (B & A)⊃ (A&B)
[y : B]y [x : A]x&-I
〈y, x〉 : B & A⊃-E
(λz. 〈z1, z0〉) 〈y, x〉 : A&B
![Page 19: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/19.jpg)
Simplifying a program
[z : B & A]z&-E1
z1 : A
[z : B & A]z&-E0
z0 : B&-I
〈z1, z0〉 : A&B⊃-Iz
λz. 〈z1, z0〉 : (B & A)⊃ (A&B)
[y : B]y [x : A]x&-I
〈y, x〉 : B & A⊃-E
(λz. 〈z1, z0〉) 〈y, x〉 : A&B
⇓[y : B]y [x : A]x
&-I〈y, x〉 : B & A
&-E1〈y, x〉1 : A
[y : B]y [x : A]x&-I
〈y, x〉 : B & A&-E0〈y, x〉0 : B
&-I〈〈y, x〉1, 〈y, x〉0〉 : A&B
![Page 20: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/20.jpg)
Simplifying a program
[z : B & A]z&-E1
z1 : A
[z : B & A]z&-E0
z0 : B&-I
〈z1, z0〉 : A&B⊃-Iz
λz. 〈z1, z0〉 : (B & A)⊃ (A&B)
[y : B]y [x : A]x&-I
〈y, x〉 : B & A⊃-E
(λz. 〈z1, z0〉) 〈y, x〉 : A&B
⇓[y : B]y [x : A]x
&-I〈y, x〉 : B & A
&-E1〈y, x〉1 : A
[y : B]y [x : A]x&-I
〈y, x〉 : B & A&-E0〈y, x〉0 : B
&-I〈〈y, x〉1, 〈y, x〉0〉 : A&B
⇓[x : A]x [y : B]y
&-I〈x, y〉 : A&B
![Page 21: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/21.jpg)
William Howard (1980) — Curry-Howard Isomorphism
![Page 22: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/22.jpg)
Curry-Howard
Hindley-Milner
Girard-Reynolds
![Page 23: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/23.jpg)
Part II
Second-order logic,Polymorphism,
and Java
![Page 24: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/24.jpg)
Gottlob Frege (1879) — Quantifiers (∀)
![Page 25: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/25.jpg)
John Reynolds (1974) — Polymorphism
![Page 26: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/26.jpg)
A magic trick
r :: [a]→ [a]
![Page 27: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/27.jpg)
Theorems for Free!
r
r
r
r
-
? -?
[a]
map f
[a]
[b]
map f
[b]
ra
rb
![Page 28: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/28.jpg)
Theorems for Free!
r
r
r
r
-
? -?
[97, 98, 99]
map chr
[‘a′, ‘b′, ‘c′]
[99, 98, 97]
map chr
[‘c′, ‘b′, ‘a′]
reverseInt
reverseChar
![Page 29: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/29.jpg)
Odersky and Wadler (1997) — Pizza
![Page 30: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/30.jpg)
Igarashi, Pierce, and Wadler (1999)— Featherweight Java
![Page 31: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/31.jpg)
Igarashi, Pierce, and Wadler (1999)— Featherweight Generic Java
![Page 32: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/32.jpg)
Gosling, Joy, Steele, Bracha (2004) — Java 5
![Page 33: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/33.jpg)
Naftalin and Wadler (2006)
![Page 34: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/34.jpg)
Part III
Three recent ideas
![Page 35: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/35.jpg)
Idea I: Object to Object
• Object vitiates parametricityclass Object {
Bool eq(Object that) {...}String show() {...}
}
• Top preserves parametrictyclass Top {
// no methods!}
![Page 36: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/36.jpg)
Idea II: Blame calculus
![Page 37: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/37.jpg)
Idea III: Propositions as Sessions
![Page 38: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/38.jpg)
Part IV
Aliens
![Page 39: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/39.jpg)
How to talk to aliens
![Page 40: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/40.jpg)
Independence Day
![Page 41: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/41.jpg)
A universal programming language?
![Page 42: Faith, Evolution, and Programming Languages...Faith, Evolution, and Programming Languages Philip Wadler University of Edinburgh TechMesh, London 4 December 2012 Evolution Multiculturalism](https://reader033.fdocuments.net/reader033/viewer/2022051815/603ebb0442db087f8b7013b7/html5/thumbnails/42.jpg)
Lambda is Omniversal