210 likes | 371 Views
Story of Alan Turing and Computation. { 圖,杜,涂 } × { 林,靈,零 }. Chung-Chih Li ( 李中志 ) School of Information Technology Illinois State University, USA. 圖林的百年誕辰紀念. Alan Turing (1912-1954). Computability Universal Turing Machines AI, Turing Test Bio-computation, Fractal,..
E N D
Story of Alan Turing and Computation { 圖,杜,涂} × {林,靈,零} Chung-Chih Li (李中志) School of Information Technology Illinois State University, USA 真理大學
圖林的百年誕辰紀念 Alan Turing (1912-1954) • Computability • Universal Turing Machines • AI, Turing Test • Bio-computation, Fractal,.. • Cryptography (the break of Enigma) • ACE (Automatic Computing Engine) • ENIAC Electronic Numerical • Integrator And Computer • EDVAC Electronic Discrete • Variable Automatic Computer Image from http://ei.cs.vt.edu/~history/Turing.html Brief Bio at YouTube The man who invented the computer Turing Award 真理大學
Chickens and Eggs Hardware (machines) and Software (programs) 真理大學
René Descartes (1596-1650) Cartesian or analytic geometry Dualism: Mind-body dichotomy computers http://en.wikipedia.org/wiki/Descartes 真理大學
Leibniz’s Dream Gottfried W.V. Leibniz (1646-1716) “Sir! Let’s sit down and compute!! ” http://sunsite.informatik.rwth-aachen.de/phil/filosofer/leibniz.html 真理大學
電腦 計算機 What is acomputer? Amachinethat cancompute! What is amachine? What iscomputation? Why bother? Because, the way we understand and formalize them directly shapes the design of programming languages. 真理大學
design: Difference Engine No. 1 (1821-1832) Analytical Engine (1834-1840) Difference Engine No. 2 (1840-1849) http://www.computerhistory.org/babbage/ Charles Babbage (1791-1871) Difference Engine No. 2 (2002) Difference Engine No. 1 真理大學
Galileo Galilei (1564 -1642) In order to understand the universe, we have to understand the language in which the universe is written, and mathematics is the language. In order to understand Information Technology, we have to understand the language in which Information Technology is written, and the Programming Language is the language. 真理大學
Logic, Thoughts, and Computing Aristotle (384 - 322 BC) A B, A B A B, B C A C http://www.klima-luft.de/steinicke/ngcic/persons/aristoteles.htm 真理大學
Logic, Thought, Computing Gottlob Frege (1848—1925) Concept Scripts http://www.iep.utm.edu/frege/ 真理大學
Bertrand Russell 1872 – 1970 Principia Mathematica (1910,1912, 1913, 1927) Types (survived in today’s PL) http://en.wikipedia.org/wiki/Bertrand_Russell “ It has been said that man is a rational animal. All my life I have been searching for evidence which could support this.” -- Bertrand Russell 真理大學
Kurt Gödel's (1906-1978) Completeness theorem Incompleteness theorem Recursive theory Computable functions are recursively definable http://www-groups.dcs.st-and.ac.uk/~history/PictDisplay/Godel.html 真理大學
Alonzo Church 1903-1995 Lambda Calculus Computable functions are Lambda-term definable http://www.princeton.edu/pr/pwb/03/0505/7a.shtml Church Thesis: all algorithms are computable 真理大學
And God said, "Let there be light," and there was light. Genesis 1:3 Alan Turing: “Let there be computers”, and there were computers Computable functions are Turing machine computable A-machine Church-Turing Thesis: all algorithms are computable 真理大學
Ludwig Wittgenstein (1889-1951) “Turing Machines are humans that compute.” http://www.cs.trinity.edu/~zsharp/ 真理大學
Turing Machine: 1. A Tape (infinite, a sequence of cells for symbols) 2. A fixed finite set of symbols (e.g., 0,1) 3. Four actions: read a symbol from the tape write a symbol onto the tape move the tape one cell forwards move the tape one cell back 4. A finite transition table (to tell what to do) That’s all. No computation can go beyond this proposal. 真理大學
Universal Turing Machine: A Turing Machine can be described as a program. A Universal Turing can simulate every such program! Thus, general purpose computers, general purpose Programming Languages and their Compilers are all possible. Church-Turing Thesis: all algorithms are computable 真理大學
Church-Turing Thesis: all algorithms are computable Logical languages e.g. PROLOG 1. Logic 2. Recursive, λ-terms Functional languages e.g. LISP, ML 3. Turing machines Imperative languages e.g. Algol-60, Fortran, C 真理大學
Imperative Languages int fact(int n) { int sofar = 1; while (n>0) sofar *= n--; return sofar;} • C Using instructions to command the machine to do something, with branches, iterations, control flows, and side-effects,. 真理大學
Functional Languages fun fact x = if x <= 0 then 1 else x * fact(x-1); • ML • LISP defun fact (x) (if (<= x 0) 1 (* x (fact (- x 1))))) Function definition, Recursion, no side-effect 真理大學
Logical Languages • PROLOG fact(X,1) :- X = 1.fact(X,Fact) :- X > 1, NewX is X - 1, fact(NewX,NF), Fact is X * NF. fact(4,X). X = 24. fact(5,30). false. 真理大學