Who Invented the Computer? Babbage, Atanasoff, Zuse, Turing or von Neumann? Raj Reddy Carnegie Mellon University Sep 23, 2013 [email protected] Talk given at Heidelberg Laureates Forum.
Download ReportTranscript Who Invented the Computer? Babbage, Atanasoff, Zuse, Turing or von Neumann? Raj Reddy Carnegie Mellon University Sep 23, 2013 [email protected] Talk given at Heidelberg Laureates Forum.
Who Invented the Computer? Babbage, Atanasoff, Zuse, Turing or von Neumann? Raj Reddy Carnegie Mellon University Sep 23, 2013 [email protected] Talk given at Heidelberg Laureates Forum on Origins of Computing 3 Stages of Information Revolution Invention of Writing Hieroglyphs, 3000BCE Kanji Characters Mesopotamia: Sumerian cuneiform writing on clay tablets Egypt: writing in hieroglyphic script Invention of Alphabet for simplified writing and learning, and communication with slaves Invention of Printing Guttenberg Press Democratization of 1450CE knowledge Invention of Computer 1950CE Passive knowledge to active knowledge Representing Numbers Roman I V X L C D M CXXVIII Indo-Arabic 1 5 10 50 100 500 1000 = 128 Binary 1 101 1010 110010 1100100 111110100 1111101000 = 10000000 Tools for Calculation: Abacus Representing Numbers in Abacus Bi-Quinary Representation (also used in early computers Colossus, IBM650 and Univac) Tools for Calculation : Slide Rule John Napier (1550-1617) Discovered Logarithms Simplifying arithmetic computations Popularized the use of Decimal Point Slide Rule: Represents Numbers on a Logarithmic Scale On a logarithmic scale an equal difference in order of magnitude is represented by an equal distance Blaise Pascal (1623-1662) Known for Co-Founder of Probability Theory Pascal’s Triangle for Binomial Coefficients Pascaline Mechanical Calculator Only addition and subtraction Pascal Programming Language named after him Gottfried Wilhelm Leibniz (1646-1714) Known for Co-Inventor of Calculus with Newton Binary Number Systems (Explication de l'Arithmétique Binaire -1703) Calculus Ratiocinator: Algebra of Logic as a Calculus of Human Reasoning Formal Logic: Forerunner of Symbolic Logic Leibniz Pinwheel Calculator Capable division of multiplication and George Boole (1815-64) Algebra of Numbers Semantics of Addition, Subtraction, and Multiplication of Numbers are well understood Algebra of Sets and Propositions (Boolean Algebra) Semantics of Addition, Subtraction, and Multiplication in Boolean Algebra are sometimes different If X=all men and Y=all women X+Y is all men and women If X = all people and Y = all children then X-Y is all Adults But X+X=X not 2X X.X = X not X2 Both Algebras Agree if X=0 or 1 0.X = 0 and 1.X = X Claude Shannon Demonstrated in 1938 that Algebra of Switching Circuits is equivalent to Algebra of Propositions Babbage and Lovelace Inventors of the First Computer and Software Designer of the Analytic Engine Analytical Engine proposed to use a First Programmable General Purpose Computer First Use of Punch Cards and Storage Registers First software program developed by Lady Lovelace A Store (Memory) with 1000 50-digit words Arithmetic Unit (ALU) Sequential Control of Instructions (CPU) with Conditional Branching Punch Card I/O Software on Punch Cards Replacing Fixed Automation by Programmable Automation Stored Program Computer? Represents Programs as Data, but on Punch Cards Missing Elements of Babbage’s Design No Binary Arithmetic or Floating Point No Working Prototype VIDEO Babbage and Lovelace First to Design a Programmable General Purpose Computer •Click here to see Babbage and Lovelace video Alan M. Turing (1912-54) Turing I: Universal Turing Machine (1936) Proposed an Abstract Digital Computing Machine, now called a Universal Turing Machine (1936), formalizing the Concepts of Algorithm and Computation Concept of a Programmable Computer Concept of a Program and Programming Concept of a Stored Program Computer Concept of a Subroutine Read, Write and Erase on an Infinite Paper Tape Modern Computers also Read, albeit with finite memory Write and Erase George Stibitz (1904-95) BTL1 1936 Stibitz is acknowledged as an early pioneer in the digital computer revolution BTL1 is known for Complex (x Multiplication and Division + yi)(u + vi) = (xu – yv) + (xv + yu)i 3 multiplications and 3 additions Needs a sequence of calculations and storing intermediate results Fixed Function – Not programmable First Computing Device ever used Remotely over Phone Lines Boolean Logic for Circuit Design Howard Aiken ASCC: Automatic Sequence Controlled Calculator (Harvard Mark I) 1936 Howard Aiken is acknowledged as an early pioneer in the digital computer revolution Harvard Mark I is known for One of the Largest Computers 51’x8’x2’ Weighing 10,000 pounds Electro-Mechanical Programmable Sequence of instructions from 24 channel paper tape No conditional branching Decimal Arithmetic 72 Storage Counters with 23 digit signed decimal numbers John Atanasoff (1903-95) ABC 1936 John Atanasoff is acknowledged as an early pioneer in the digital computer revolution Atanasoff-Berry Computer (ABC) ABC is known for First Electronic Digital Computer arithmetic logic functions were fully electronic logic gates ranged from inverters to two and three input gates Binary digits represent all numbers and data Fixed Function – Not Programmable No Stored Program Regenerative capacitor memory VIDEO John Atanasoff (1903-95) First to Develop a Working Electronic Digital Computer with Binary Arithmetic •Click here to see Atanasoff’s video Konrad Zuse (1910-1995) Z3 1936 Konrad Zuse is acknowledged as an early pioneer in the digital computer revolution Z3 is known for First working, program-controlled, general-purpose, electro-mechanical relay computer Sequence of Instructions on Tape Conditional Branching missing First to use Binary Representation First use of Floating Point Single Address Instructions Operation, First Operand Programmable Computer VIDEO Konrad Zuse (1910-1995) First to Develop a Working Programmable General Computer with Binary and Floating-point Arithmetic Click here to see Zuse’s video Turing II Bombe (1940) Bombe was an electromechanical device used to decipher German Enigma-machine-encrypted secret messages Developed by Alan Turing and Gordon Welchman Produced in 1940 at the UK Government Code and Cypher School Bombe was An Electro-mechanical Special Purpose Computer The First to be used in Symbolic Computation The First to be used as a Parallel Computer Tommy Flowers Colossus (1943) Colossus was the world's first electronic digital computer that was at all programmable Used for Code Breaking during WWII Colossus Used 2000+ state-of-the-art vacuum tubes First working implementation of a programmable electronic computer Atanasoff’s was not programmable Eckert and Mauchly ENIAC: Electrical Numerical Integrator and Computer 1945 Eckert and Mauchly provided key leadership in the emergence of Electronic Digital Computer Responsible for emergence of global digital computer industry along with IBM Eckert Mauchly Computer Corporation 1948 First Large Scale Electronic Computer ENIAC Known for First to become operational Far Faster than any another existing computer Too slow 20 10-digit accumulators Training Ground for Many Successors Programming by Plugboard Full Conditional Branching Decimal Arithmetic Punch Card I/O Led to EDVAC Report John von Neumann with Goldstine, Eckert and Mauchly EDVAC Report (1945): Electronic Discrete Variable Automatic Computer Based on discussions with Goldstine, Eckert and Mauchly A Design for a Programmable Electronic Digital Computer Concept of a Stored Program Concept of Instructions as Data Instructions and Data in same Memory Concept of sequential flow of control a processing unit: an arithmetic logic unit and processor registers a control unit: an instruction register and program counter a memory to store both data and instructions external mass storage, and input and output mechanisms A “program counter” that indicates the current point that has been reached in execution of a program Concept of a variable “named” storage locations in which a value may be stored and subsequently referenced VIDEO John von Neumann (1903 - 1957) First to propose the architecture for a Stored Program Electronic Digital Computer •Click here to see Neumann’s video Turing III: Automatic Computing Engine (ACE) Report (Dec 1945) Also a Founder of Artificial Intelligence Designed Code Breaking Computers during WW II Created the Design for ACE (1945), proposing A Stored Program Electronic Computer With Binary Arithmetic Using Electronic Logic Circuits ALU, Memory (and Registers) and I/O Stored Program Conditional Floating Branching Point Commercialized by Ferranti and English Electric in 1950s Cambrian Explosion of Computers List of Stored Program Computers 1946-1950 Manchester SSEM (UK) Sep-48 Decimal Mercury delay line memory May-49 Binary CRT and magnetic drum memory Oct-49 Binary Mercury delay line memory Binary Pilot ACE (UK) Read Only Memory Manchester Mark 1 (UK) Binary Cambridge EDSAC (UK) Jun-48 Modified ENIAC (US) CRT memory May-50 Also CSIRAC, BINAC, UNIVAC, SEAC, Harvard MarkIII Who was the First? Babbage: FIRST to design a PROGRAMMABLE general purpose computer Atanasoff: FIRST to develop a working ELECTRONIC digital computer with binary arithmetic Not a programmable general purpose computer In spite of familiarity with Babbage’s work, did not see programmability as a central issue Zuse: FIRST to develop a WORKING programmable general computer with binary and floating-point arithmetic Not implemented, No Impact Not Electronic, No conditional execution Turing I (1936): FIRST to propose the STORED PROGRAM CONCEPT (as part of Universal Turing Machine) No implementation, No direct impact Who was the First? Turing II (1940): FIRST to be used for Symbolic Computation and Parallel Computation Flowers (1944): FIRST working Programmable ELECTRONIC digital computer Special purpose computer for code-braking Not stored program, but just plug-board programming von Neumann: FIRST to propose the STORED PROGRAM ELECTRONIC DIGITAL COMPUTER widely adopted in US, many variations implemented, including EMCC and IBM Turing III (1945): FIRST to anticipate a RISC ARCHITECTURE for a programmable electronic computer ACE architecture used in English Electric and Ferranti Computers Who is the Inventor of Modern Computer? Pascal, Leibniz, Stibitz, Aiken, Flowers, Eckert and Mauchly? Babbage? Atanasoff? Zuse Turing? von Neumann? Relative Contributions of Various Pioneers Name System Year Program mable Electronic Bi-nary Float Pt Stored Prog Proto type CISC/ RISC Impact Wide Use Pascal Pascaline Leibnitz 1645 N N N N N Y N N 7 Pinwheel 1670 N N N N N N N Y 7 BTL 1936 N N N N N Y N N 7 Analytc Engine 1840 Y N N N Y N N N 6 Aiken BTL 1936 Y N N N Y Y N N 5 Atanasoff ABC 1937 N Y Y N N Y N N 5 Turing II Bombe 1942 N N Y N N Y N Y 5 Turing I Turing Machine 1936 Y N Y N Y N Y N 4 Eckert & Mauchly ENIAC 1940 Y Y N N N Y N Y 4 Flowers Colossus 1944 Y Y Y N N Y N Y 3 Z3 1941 Y Y Y Y Y Y N N 2 von Neumann EDVAC 1945 Y Y Y Y Y Y N Y 1 Turing III ACE 1945 Y Y Y Y Y Y Y Y 0 Stibitz Babbage Zuse Rank Programmable? Name System Year Program mable Electronic Bi-nary Float Pt Stored Prog Proto type CISC/ RISC Impact Wide Use Pascal Pascaline Leibnitz 1645 N N N N N Y N N 7 Pinwheel 1670 N N N N N N N Y 7 BTL 1936 N N N N N Y N N 7 Analytc Engine 1840 Y N N N Y N N N 6 Aiken BTL 1936 Y N N N Y Y N N 5 Atanasoff ABC 1937 N Y Y N N Y N N 5 Turing II Bombe 1942 N N Y N N Y N Y 5 Turing I Turing Machine 1936 Y N Y N Y N Y N 4 Eckert & Mauchly ENIAC 1940 Y Y N N N Y N Y 4 Flowers Colossus 1944 Y Y Y N N Y N Y 3 Z3 1941 Y Y Y Y Y Y N N 2 von Neumann EDVAC 1945 Y Y Y Y Y Y N Y 1 Turing III ACE 1945 Y Y Y Y Y Y Y Y 0 Stibitz Babbage Zuse Rank Stored Program? Name System Year Program mable Electronic Bi-nary Float Pt Stored Prog Proto type CISC/ RISC Impact Wide Use Pascal Pascaline Leibnitz 1645 N N N N N Y N N 7 Pinwheel 1670 N N N N N N N Y 7 BTL 1936 N N N N N Y N N 7 Analytc Engine 1840 Y N N N Y N N N 6 Aiken BTL 1936 Y N N N Y Y N N 5 Atanasoff ABC 1937 N Y Y N N Y N N 5 Turing II Bombe 1942 N N Y N N Y N Y 5 Turing I Turing Machine 1936 Y N Y N Y N Y N 4 Eckert & Mauchly ENIAC 1940 Y Y N N N Y N Y 4 Flowers Colossus 1944 Y Y Y N N Y N Y 3 Z3 1941 Y Y Y Y Y Y N N 2 von Neumann EDVAC 1945 Y Y Y Y Y Y N Y 1 Turing III ACE 1945 Y Y Y Y Y Y Y Y 0 Stibitz Babbage Zuse Rank Binary Arithmetic? Name System Year Program mable Electronic Bi-nary Float Pt Stored Prog Proto type CISC/ RISC Impact Wide Use Pascal Pascaline Leibnitz 1645 N N N N N Y N N 7 Pinwheel 1670 N N N N N N N Y 7 BTL 1936 N N N N N Y N N 7 Analytc Engine 1840 Y N N N Y N N N 6 Aiken BTL 1936 Y N N N Y Y N N 5 Atanasoff ABC 1937 N Y Y N N Y N N 5 Turing II Bombe 1942 N N Y N N Y N Y 5 Turing I Turing Machine 1936 Y N Y N Y N Y N 4 Eckert & Mauchly ENIAC 1940 Y Y N N N Y N Y 4 Flowers Colossus 1944 Y Y Y N N Y N Y 3 Z3 1941 Y Y Y Y Y Y N N 2 von Neumann EDVAC 1945 Y Y Y Y Y Y N Y 1 Turing III ACE 1945 Y Y Y Y Y Y Y Y 0 Stibitz Babbage Zuse Rank Working Prototype? Name System Year Program mable Electronic Bi-nary Float Pt Stored Prog Proto type CISC/ RISC Impact Wide Use Pascal Pascaline Leibnitz 1645 N N N N N Y N N 7 Pinwheel 1670 N N N N N N N Y 7 BTL 1936 N N N N N Y N N 7 Analytc Engine 1840 Y N N N Y N N N 6 Aiken BTL 1936 Y N N N Y Y N N 5 Atanasoff ABC 1937 N Y Y N N Y N N 5 Turing II Bombe 1942 N N Y N N Y N Y 5 Turing I Turing Machine 1936 Y N Y N Y N Y N 4 Eckert & Mauchly ENIAC 1940 Y Y N N N Y N Y 4 Flowers Colossus 1944 Y Y Y N N Y N Y 3 Z3 1941 Y Y Y Y Y Y N N 2 von Neumann EDVAC 1945 Y Y Y Y Y Y N Y 1 Turing III ACE 1945 Y Y Y Y Y Y Y Y 0 Stibitz Babbage Zuse Rank Impact on Society Commercial Availability Name System Year Program mable Electronic Bi-nary Float Pt Stored Prog Proto type CISC/ RISC Impact Wide Use Pascal Pascaline Leibnitz 1645 N N N N N Y N N 7 Pinwheel 1670 N N N N N N N Y 7 BTL 1936 N N N N N Y N N 7 Analytc Engine 1840 Y N N N Y N N N 6 Aiken BTL 1936 Y N N N Y Y N N 5 Atanasoff ABC 1937 N Y Y N N Y N N 5 Turing II Bombe 1942 N N Y N N Y N Y 5 Turing I Turing Machine 1936 Y N Y N Y N Y N 4 Eckert & Mauchly ENIAC 1940 Y Y N N N Y N Y 4 Flowers Colossus 1944 Y Y Y N N Y N Y 3 Z3 1941 Y Y Y Y Y Y N N 2 von Neumann EDVAC 1945 Y Y Y Y Y Y N Y 1 Turing III ACE 1945 Y Y Y Y Y Y Y Y 0 Stibitz Babbage Zuse Rank In Summary Babbage got most of the elements of a Digital Computer right No impact But it was not a general purpose programmable architecture had no impact on the future evolution Jane Smiley thinks Atanasoff invented the computer Martin Davis believes that Turing qualifies for the title given the 1936 seminal paper Zuse got most of the elements right but the Universal Turing Machine idea was largely ignored had little impact on the emergence of the modern computer based on electromechanical components, and no conditional execution von Neumann or Turing? This is like asking who invented calculus: Newton or Leibniz? EDVAC and ACE reports defined the future of Computing Who Invented the Computer? Babbage, Atanasoff, Zuse, Turing or von Neumann? All of them deserve the title “Man Who Invented the Computer” It is amazing and inspiring that these pioneers working alone and in isolation with limited resources made as much progress Post 1945 The dawn of Computer Age? Advances over last 7 decades: incredible and unprecedented in the annals of science and technology exponential growth in computational power, exponential growth in memory capacity, exponential growth in optical bandwidth and exponential growth in wireless bandwidth. Progression from transistors to integrated circuits to vlsi to multicore mainframes to minis to pcs to mobile systems to warehouse scale computers Arpanet to Internet to Wifi to 4G to gigabit wireless Interpreters to compilers to www to apps Post 1945 (cont) Most importantly, we have expanded the scale and scope of the uses of computers by developing algorithms for many unconventional tasks such as cars that drive themselves any-to-any language translation spoken language understanding winning at games such as poker, winning robo-soccer, jeopardy and crashing the stock market Derivatives market Cause sub-prime financial crisis These are tales for another day!