250 likes | 357 Views
Chapter 3 – 1952-1968. Early History of Software. Software. What is software? Programming? Extremes Microcode vs. Interface Read comments - Page 81 How did hw & sw fit together?. Very Early Days. Summer 1944- Grace Hopper to Harvard Howard Aiken, MARK I –Pg. 82
E N D
Chapter 3 – 1952-1968 Early History of Software
Software • What is software? Programming? • Extremes • Microcode vs. Interface • Read comments - Page 81 • How did hw & sw fit together?
Very Early Days • Summer 1944- • Grace Hopper to Harvard • Howard Aiken, MARK I –Pg. 82 • “Thus began the process of computer programming in the U.S.” • Idea for multiple tapes - for code reuse
Early Programming • Mark III – typed commands, stored on magnetic tape, executed • Zuse – “Plan Preparation Machine” • Commands on tape, checked syntax, translated • EDSAC- library of paper tape code • Wheeler Jump subroutine call • None stored in internal memory
Early Computers • UNIVAC 1952 • Today translate to machine code • Punch Cards: pre-punched + transitional = compile • Grace Hopper: A-0 compiler at UNIVAC • Automatic programming • To handle subroutines by copying them into main • Idea: “ Interchangeable parts” too inflexible • Realized were standardizing the wrong level of work
Whirlwind @ MIT • J.H. Laning & N. Zierler • “A program for translation of mathematical equations for Whirlwind I” - 1954 • Behaved like modern compilers • Not general purpose - algebraic equations • Backus (FORTRAN) – Elegant but threatened the “priesthood” • Knuth – too slow
Assemblers • Systems Programming Languages • One-to-one binary (machine) code • Macro instructions • Symbolic Addressing (variables)
SHARE • 1955 - IBM 701 users in L.A. • Compiled library of routines • Grew to 62 members • IBM responded to opinions • Helped transition to 704
Sorting • Applications - Files on tape • Up to 1973 - 25% of computer time • People “used” printed reports • Betty Holberton @ UNIVAC-1952 • Sorted small groups and merged with master file • Knuth – “1st major software routine ever developed for automatic programming • Later disks & linked lists - plus
FORTRAN - 1957 • Formula Transistor- scientific • IBM for 704, John Backus • Still widely used • Key to success: generated code as efficient as written code • Fast; 704 had floating point hardware • Combination of hiding and access
COBOL-1959 • Common Business Oriented Language • Dept. of Defense • Produced language specifications • U.S. govt.: all h.w. must handle COBOL • Thus, one of 1st standardized • Grave Hopper @ UNIVAC • Flow-matic - Use long character names • Year 2000 bug • Not really self documenting
Other Early Languages • ALGOL- Europe, 1958-1960 • Hardware independent • Specified in BNF • JOVIAL • Def. Dept. Variant of ALGOL for SAGE • Still used recently • LISP – AI - Lists • SNOBOL - Strings • RPG – IBM - still used – AS400
Early System Software • Operator scheduled all resources • Soon became too complex • IBM - Job Control Language (JCL) • 1990’s Operating System
MAD: Michigan Algorithmic Decoder • University students needed “help” • 1959: ALGOL Based • *Fast Compile *Good Diagnostics • Memory Dumps • Helped to keep computer busy NOTE: No applications software!
Evolution of Operation Systems • Continued to grow in complexity, size • Monitor • Supervisor system • Operating system • DOS to Windows (GUI) • IBM System/360-1966 • OS/360- business + scientific - Failure • Mini-computers-1960’s • OS development started over • Small memories • VMS for VAX (DEC)-1978 • Personal Computers • OS development started over Again!
Computer Science • With Mathematics & Electrical Engineering • Stanford and Purdue – 1950’s • Stanford • Mathematics 1961 • Separate Dept. 1965 • Study of computers vs. Study of Algorithms • ACM Curriculum ‘68
Computer Science (cont.) • 1968 – ACM – Curriculum - no h.w. • 1964 -12 University degrees • 1968 - 100 • 1980 - Most popular major in the US
Donald Knuth- “The Art of Computer Programming” • 1968 Published 1st volume of 7 • 1: Fundamental Algorithms • 2: Semi numerical Algorithms • 3: Searching and Sorting
Knuth Cont. • TBA - in progress • 4: Combinatorial Algorithms • 5: Syntactic Algorithms • Maybe - “God Willing” • 6: Theory of Context free languages • 7: Compiler Techniques • www-cs-faculty.stanford.edu/~Knuth/taocp.html
Structured Programming • Edsger Dijkstra • Tech. Univ. of Eindhoren, Neth. • University of Texas • March 1968 - CACM • “For a number of years I have been familiar with the observation that the quality of programmers is decreasing function of the frequency of GOTO statements in the programs they produce” • Much Debate, but slow change
Intellectual Property • Letters in CACM, 1968 • Rock for Inst., Calvin Mooers • Sought legal protection for TRAC language • No alterations, changes, etc. • Bernard Galler, MAD, Michigan • MAD & others had been improved by users • TRAC failed - too early for protection • Set stage for future laws/ lawsuits
Software Engineering • 1968- NATO conference “Software Engineering” • “Crisis” • Programmers lacked “ theoretic foundations & disciplines of daily practice” from traditional engineering • No certification nor chain of legal responsibility • Continues to be debated • SE Certification in Texas
Unbundling • Separate H.W. and S.W. • 1968 - IBM – Government pressure • CICS (Customer Info. Control System) • Opened door for commercial vendors
UNIX • 1969- Bell labs in N.J. • Ken Thompson, Dennis Ritchie • PDP-7 • Language “B” – “C” in 1973 • Contrast to ALGOL68 & PL/1 • Pascal- Nicholas Wirth, Sweden
Chapter 3 – 1952-1968 Early History of Software