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!