Title: Why and How Were Programming Languages Developed?
1Why and How WereProgramming 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,
2History 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/index
2.htm - http//www.obsoletecomputermuseum.org/
3G
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
4Hardware 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
5First 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.)
6Abacus 7Earliest Forms Circa 3000 BC
7Slide Rule - Circa 1600
8Joseph 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
9(No Transcript)
10(No Transcript)
11Another 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!
12Charles Babbage (1791-1871)
13Babbages Analytical EngineA 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
14Difference Engine
- 1822 original design called for 6 decimal places
with second-order difference - 1830 redesigned difference engine with 20 decimal
places and a sixth-order difference
15Science Museums Reconstruction
- Difference Engine Number 2 (1847 to 1849)
- Science Museum Recreation 1991 (Doron Swade,
Curator, below) - constructed according to Babbages original
drawings (minor modifications) - 1991 Bicentenary Celebration
- 7 feet high
- 11 feet long
- 18 inches deep
- 4,000 parts
- 500,000 pounds
16Its 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 Smithsonians 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
17Scheutz Difference Engine
18Ada 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 Taylors
Scientific Memoirs, Vol. III" - Ada translated paper into English
- Taylors "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! - Worlds first programmer?
19Importance of the Difference Engine
- 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. - An example of government subsidization of
innovation and technology development - Spin offs to the machine-tool "industry"
20Babbages Analytical EngineA 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
21Analytical Engine
22Analytical Engine 1840
23Vacuum Tubes (Analog)
24Zuses Plankalkül - 1945
- Never implemented
- Advanced data structures
- floating point, arrays, records
- Invariants
25Pseudocode 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
261930s-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/
27John 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
28Electr(ical/onic) Analog Computers
- Flight Simulators, including Whirlwind at MIT
- Weapons analysis and operation
- Electrical engineering problems
- Telephone engineering problems
29John 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
30Ideas
- 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...."
31Electronic Numerical Integrator andComputer
(ENIAC)
- 1st large scale electronic digital computer
- Designed and constructed by Eckert and Mauchly
- Since 1920s, faculty had worked with Aberdeen
Proving Grounds - Ballistics Research Laboratory
32Vacuum Tubes in the ENIAC
33"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!