The Difference Engine
Download
Report
Transcript The Difference Engine
Lecture 1
History of Computers
History of Computers
• Mechanical Computers
–
–
–
–
–
–
Abacus
Jacquard Loom
Player Piano
Difference Engine
Analytical Engine
Hollerith and the 1890 US Census
The Jacquard Loom
• Program cards with
punched holes to
control the pattern
being woven.
• Less talented people
could make cloth as
fancy as highly
skilled weavers.
Player Piano
The typical upright player piano
was operated by pumping two
large foot pedals which came out
from inside the lower panel of the
instrument. Pumping these pedals
created a vacuum, which operated
a perforated paper roll located
behind sliding doors in the front
panel of the instrument. The
perforations in the paper roll
passed over a series of holes
through which vacuum was pulled
to activate the keys.
The Difference Engine
• Predecessor to the
Analytical Engine
• Calculated value of
polynomials via the
addition of differences
• Single purpose - not
programmable for other
purposes
The Difference Engine
• Calculates a polynomial such as the square
of a number via a sum of the differences.
The Analytical Engine
• Added the concept of storing on
cards the sequence of operations for
a machine such as the difference
engine to make it programmable. Charles Babbage
• Augusta Ada, Countess of Lovelace
was the first computer programmer.
• We have named a programming
language (Ada) in her honor.
Augusta Ada
Hollerith Cards
• Hollerith used punched cards to hold data
and could mechanically sort the cards and
add/print data from cards in sorted order.
• Hollerith cards were used for utility bills
and US Savings Bonds as recently as the
1980’s.
Hollerith Card Processing
History of Computers
• Early Electrical/Electronic Computers
– Atanasoff-Berry Computer – Vacuum Tubes
– Konrad Zuse and Helmut Schreyer - Relays
– Howard Aiken (Harvard Mark I) – Relays
• Typical Uses
– Compute Ballistic Firing Tables for Artillery
– Solutions for Algebraic Equations
Relays versus Vacuum Tubes
Relays are
switches controlled
by a magnetic field
Vacuum Tubes are
switches controlled
by an electric field
Switches
Output Voltage(s)
And Current(s)
Input Voltage
And Current
Output Voltage(s)
And Current(s)
Electromagnet
Input Voltage
And Current
Filament Power
Relays versus Vacuum Tubes
• Both were in mass production at the time (1940’s)
– Relays were used in telephone switches
– Vacuum tubes were used in radios.
• Relays used mechanical switches that could fail due
to dirt, etc. and were slower than vacuum tubes
• Relays were more reliable than vacuum tubes which
had a filament (like a light bulb) that could burn out.
• Both used a relatively large amount of power by
comparison to today’s electronic circuits
History of Computer Hardware
• Electronic Computers – First Generation
– British Colossus
– Electronic Numerical Integrator and Computer
(ENIAC)
– IBM 7090
ENIAC
• A 30 by 50 foot room
• 18,000 Vacuum Tubes
• Programming done via
wires on patch panels
• Not as powerful as the
machine in front of you
• Mean Time Between
Failure (MTBF) shorter
than many practical jobs
Lots of heat generated by the
vacuum tubes - needed cooling
History of Computer Hardware
• Electronic Computers – Second Generation
– Transistors (invented 1957)
– IBM 360
– Honeywell 316
• Many large racks of equipment using a lot of
power and needing an air conditioned room
History of Computer Hardware
• Electronic Computers - Third Generation
– Integrated Circuits
(invented 1963)
– IBM 370
– DEC VAX
• Fewer smaller equipment racks, but still using a
lot of power / needing an air conditioned room
History of Computer Hardware
• Electronic Computers – Fourth Generation
–
–
–
–
–
Large scale/Very Large Scale Integrated Circuits
Microprocessors (Computer on a chip)
IBM PC and Apple MacIntosh
IBM Mainframes and Servers
Apollo/HP/Sun Workstations
• Single shelf, Desktop, and Laptop Possible
The Computer as a Tool
• Calculators
– “Modern” Mechanical Calculators
– Slide Rules
– Modern Pocket Calculators
– Windows Calculator Accessory
• Programs/Accessories/Calculator on PC Screen
• Easy to use because it looks like a modern pocket calculator
A Person as a Computer
• With simple (four function) calculators, the user is
the computer, e.g. balancing your checkbook
• The calculator is an aid to the person doing
computing, but doesn’t know the algorithm
• The person must know the algorithm for the
calculation being done and control execution of it
• A simple calculator is similar to the Difference
Engine – It is not programmable
• A true computer is programmable and controls the
execution of the algorithm
An Algorithm
• A series of steps for computing a result, e.g.
Newton’s method for finding the square root
of a number via multiple iterations (Page 26)
• Guess = (n + Guess2)/(2 x Guess)
• Computers are good at doing repetitive steps
such as iterating a formula like the one above
A Program
• Program contains one line with the algorithm
• Program must also handle input and output of
numbers to be calculated (n and guess)
• Program must also control the number of
iterations (or allow user to control them)
• Program must also exit cleanly when done
• Programmer must handle many details!!!
A Program doing an Algorithm
• See class demonstration of HTML and
JavaScript program for Newton’s Method
Modern Computer Personalities
•
•
•
•
•
Alan Turing
John Von Neumann
Ted Hoff (Intel)
Wosniak/Jobs (Apple)
Bill Gates (Microsoft)