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