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
Report
Transcript 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!