Chapter 3 – Early History of Software
Software What is software? Programming? Extremes – Microcode vs. Interface Read comments - Page 81 How did hw & sw fit together?
Summer – 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 Very Early Days
Early Programming Mark III – typed commands, stored on magnetic tape, executed – (p83 pix) Zuse – “Plan Preparation Machine” – Commands on tape, check syntax, translated – *Rutishauser – Why separate device? 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
MIT J.H. Laning & N. Zierler “A program for translation of mathematical equations for Whirlwind I” – 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 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 % compute time – sorting People “used” printed reports, not computer Betty UNIVAC-1952 – Sorted small groups and merged with master file – Knuth – “1 st major software routine ever developed for automatic programming Later disks & linked lists - plus
FORTRAN 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 1 st standardized Grave UNIVAC – Flow-matic - Use long character names Year 2000 bug – Not really self documenting
Other Early Languages ALGOL- Europe, – 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) – What compiler – data or code 1990’s Operating System
MAD: Michigan Algorithmic Decoder University students needed “help” & needed efficient use of computers 1959: ALGOL Based *Fast Compile *Good Diagnostics – Memory Dumps Helped to keep computer busy NOTE: No applications software!
Evolution of Operation Systems Grew in complexity, size, consumption – Monitor – Supervisor system – Operating system DOS to Windows (GUI) IBM System/ – OS/360- business + scientific - Failure Mini-computers-1960’s – OS development started over – Small memories – VMS for VAX (DEC) Personal Computers – OS development started over Again!
Computer Science With Mathematics & Electrical Engineering Stanford and Purdue – 1950’s Stanford – George Forsythe – Mathematics 1961 – Separate Dept Study of computers vs. Study of Algorithms ACM Curriculum ‘68 (2013)
Computer Science (cont.) 1968 – ACM – Curriculum - no h.w University degrees Most popular major in the US
Donald Knuth- “The Art of Computer Programming” 1968 Published 1 st 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 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 Rockford 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 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 IBM – Government pressure – CICS (Customer Info. Control System ) Opened door for commercial vendors
UNIX 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 – Early History of Software