Why and How Were
Programming Languages Developed?
• Software evolved with hardware
– Machine language
• 000 001 010 011 100 101 110 111
– Assembly languages
•
ADD R1 R2, SUB R1 001
– Higher-level languages
• ForTran, Lisp, COBOL
– Graphical interfaces
• mouse, window systems, Mac, MS windows …
– Specialized languages
• SQL, KQML, …
1
History of Computing –
Hardware and Software
• http://www.computerhistory.org/exhibits.html
– http://www.computerhistory.org/timeline/
• http://www.cbi.umn.edu/resources/vintage.html
• http://www.computinghistorymuseum.org/museum/index2.htm
• http://www.obsoletecomputermuseum.org/
2
3
G
e
n
e
a
I
o
g
y
o
f
C
o
m
m
o
n
L
a
n
g
u
a
g
e
s
Hardware Evolution
• Analog vs. digital
• Mechanical vs. electronic
• Switch, vacuum tube, transistor, integrated
circuit, LSI, VLSI, VVLSI
• Precursors – mechanical devices
• First generation – vacuum tubes
• Second generation – transistors
• Third generation – integrated circuits
4
First: Mechanical Analog Devices
• slide rule: an instrument consisting of a ruler with a
central sliding piece, both being marked with logarithmic
scales; used in making rapid mathematical calculations.
(Webster's, op. cit.)
• clock, n., [ME clock], an instrument for the measurement
of time by the motion of its parts, indicating hours,
minutes, and often seconds, by hands which move upon
a dial plate. It usually consists of a frame containing a
train of toothed wheels operated by springs and weights
and regulated by a pendulum or balance wheel. (ibid.)
5
Abacus 7
Earliest Forms Circa 3000 BC
6
Slide Rule - Circa 1600
7
Joseph Marie Jacquard (1752-1834)
• Born in Lyons, France
• Son of silk weavers
• Father died and he inherited a small 1772 house
and a hand loom, which he started improving.
• Existing technology:
– M. Bouchon (1725) pierced paper
– M. Falcon (1728) chain of cards
– Jacques deVancason (1754) automaton
8
9
10
Another revolution....
• Finished his "machine" 1804
• Invention? First person to obtain a practical
arrangement which could be generally adapted
to a wide range of problems
• Consiel de Prudhomes broke up his machines
1810
• sabotage: 1. malicious injury to work, tools,
machinery, etc. (sabot, Fr. wooden shoe)
• died, August 7, 1834 in Quillons at age 82
• 30,000 machines in use in Lyons alone!
11
Charles Babbage (1791-1871)
12
Babbage’s Analytical Engine
A General Purpose Machine
• Mechanical device
• NOT electrical
• user program control
using punched cards
– operations cards
– variable cards
– number cards
• Separation of storage and
calculation:
• (V) store mill:
• (A) are accumulators
• Control by microprogram:
• (B) control barrels
13
Difference Engine
• 1822 original
design called for 6
decimal places with
second-order
difference
• 1830 redesigned
difference engine
with 20 decimal
places and a sixthorder difference
14
Science Museum’s Reconstruction
• Difference Engine Number 2 (1847 to 1849)
• Science Museum Recreation 1991 (Doron Swade, Curator, below)
– constructed according to Babbage’s original drawings (minor modifications)
•
•
•
•
•
•
1991 Bicentenary Celebration
7 feet high
11 feet long
18 inches deep
4,000 parts
500,000 pounds
15
It’s all a matter of perspective....
• Johann Meuller, Universal Calculator 1784
• Georg and Edvard Scheutz (after Lardner)
– Difference Engine #1 a prototype which 1843
produced the first tables calculated and printed by
machinery
– Difference Engine #2 sold to Dudley Observatory,
Albany, NY (in Smithsonian’s Info. Age) 1853
– Difference Engine #3 was a copy of #2,1859
• sold to General Register Office in London; used to produce
the English Life Table, 1864
16
Scheutz Difference Engine
17
Ada Augusta Byron, 1815-1852
• Corresponded with Charles Babbage
• L. F. Menebrea, at (Italian) Office of
Military Engineers wrote “Sketch of
the Analytical Engine invented by
Charles Babbage, Esq.," in Taylor’s
Scientific Memoirs, Vol. III"
• Ada translated paper into English
• Taylor’s: "The editorial notes are by
the translator, the Countess of
Lovelace." Footnotes enhance the
text and provide examples of how
the Analytical Engine could be used,
i.e., how it would be programmed to
solve problems!
• World’s first programmer?
18
Importance of the Difference Engine
1. First attempt to devise a computing machine
that was automatic in action and well adapted,
by its printing mechanism, to a mathematical
task of considerable importance.
2. An example of government subsidization of
innovation and technology development
3. Spin offs to the machine-tool "industry"
19
Babbage’s Analytical Engine
A General Purpose Machine
•
•
•
•
•
•
•
1834 basic plans formulated for an
improved device, capable of
calculating any mathematical
function!
Basic problem: how to feed the
digits of the result wheels back
into the calculation
Portion of mill completed 1847
Portion of printing mechanism
1834 to 1848 -- 30 sets of plans;
seems to have given up on
construction due to the problems
with the difference engine
Returned to work on design 1858
1871 substantial trial model being
developed
•
•
•
•
•
•
•
an anticipating carry mechanism;
a system of rods for transfer of
numbers to the printing
mechanism
Separation of storage and
calculation:
(V) store mill:
(A) are accumulators
Control by microprogram:
(B) control barrels
user program control using
punched cards
–
–
–
operations cards
variable cards
number cards
20
Analytical Engine
21
Analytical Engine 1840
22
Vacuum Tubes (Analog)
23
Zuse’s Plankalkül - 1945
• Never implemented
• Advanced data structures
– floating point, arrays, records
• Invariants
24
Pseudocode – 1949-1953
• What was wrong with using machine code? 0100 1000
1100 0101 1001 …
–
–
–
–
Poor readability
Poor modifiability - generality
Expression coding was tedious poor writability
Machine deficiencies -- no indexing or floating point
• Laning and Zierler System - 1953
–
–
–
–
Implemented on the MIT Whirlwind computer
First "algebraic" compiler system
Subscripted variables, function calls, expression translation
Never ported to any other machine
25
1930s-1940s
• Atanasoff at Iowa State University, Ames
– J.V. Atanasoff, "Computing Machine for the Solution of large
Systems of Linear Algebraic Equations," (August 1940) in
Randell (Ed.), The Origins of Digital Computers, Selected
Papers, Springer-Verlag, Berlin, 1973
– J.V. Atanasoff, "Advent of Electronic Digital Computing," Annals,
Vol..6, No.3 (July 1984)
• Eckert & Mauchly at University of Pennsylvania
– http://www.seas.upenn.edu/~museum/
26
John Vincent Atanasoff (1903-1995)
• 1937 -1942, developed and built an automatic electronic digital
computer for solving large systems of simultaneous equations.
• 1939, completed and reduced to practice his basic conceptions in an
operating breadboard model of a computing machine.
• (1997-99) Reconstruction of Atanasoff Machine, below
27
Electr(ical/onic) Analog Computers
•
•
•
•
Flight Simulators, including Whirlwind at MIT
Weapons analysis and operation
Electrical engineering problems
Telephone engineering problems
28
John Mauchly (1907-1980)
J. Presper Eckert (1919-1995)
• Mauchley – Physics instructor,
Ursinus College
• Attends a wartime course on
electronics at Moore School
• December 1940 Attends AAS
meeting meets John V.
Atanasoff
• Working on problems of
weather prediction
• Visits Atanasoff in Iowa, June
1941
• Eckert - Met Mauchly while a
graduate student supervising
laboratory work for a war-time
electronics class 1941
• Did wartime research on radar
and delay line memories for
radar devices
• Chief Engineer on ENIAC
• Contract signed when he was
24 years old
• First electronic digital engineer
29
Ideas
•
August 1942, John Mauchly
writes “The Use of High Speed
Vacuum Tube Devices for
Calculating” which is ignored!
• 1943, Mauchly and Eckert
prepare a proposal for the US
Army to build an Electronic
Numerical Integrator
• June 26, 1947 Eckert and
Mauchly apply for patent on the
ENIAC which "embodies our
invention...."
30
Electronic Numerical Integrator and
Computer (ENIAC)
•
•
•
•
1st large scale electronic digital computer
Designed and constructed by Eckert and Mauchly
Since 1920s, faculty had worked with Aberdeen Proving Ground’s
Ballistics Research Laboratory
31
Vacuum Tubes in the ENIAC
32
"Setting up the problem"
•
•
•
•
ENIAC was NOT a "stored program" device
For each problem, someone analyzed the arithmetic processing needed
and prepared wiring diagrams to perform the calculations
Process was time consuming and error prone
Cleaning personnel knocked cables out and put them back somewhere
else!
33
Descargar

Slide 1