Chapter 3 – 1952-1968 Early History of Software. Software What is software? Programming? Extremes...

25
Chapter 3 – 1952- 1968 Early History of Software

Transcript of Chapter 3 – 1952-1968 Early History of Software. Software What is software? Programming? Extremes...

Chapter 3 – 1952-1968

Early History of Software

Software

What is software? Programming?Extremes

– Microcode vs. InterfaceRead comments - Page 81How did hw & sw fit together?

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

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

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) codeMacro instructionsSymbolic Addressing (variables)

SHARE

1955 - IBM 701 users in L.A.Compiled library of routinesGrew to 62 membersIBM responded to opinionsHelped transition to 704

Sorting

Applications - Files on tape Up to 1973 - 25% compute time – sorting People “used” printed reports, not computer 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 BackusStill widely usedKey to success: generated code as

efficient as written codeFast; 704 had floating point hardwareCombination 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 resourcesSoon became too complexIBM - 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 busyNOTE: No applications software!

Evolution of Operation Systems

Grew in complexity, size, consumption– 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 EngineeringStanford and Purdue – 1950’sStanford – George Forsythe

– Mathematics 1961– Separate Dept. 1965

Study of computers vs. Study of AlgorithmsACM Curriculum ‘68 (2013)

Computer Science (cont.)

1968 – ACM – Curriculum - no h.w.1964 -12 University degrees1968 - 1001980 - Most popular major in the US

Donald Knuth- “The Art of Computer Programming”

1968 Published 1st volume of 71: Fundamental Algorithms2: Semi numerical Algorithms3: Searching and Sorting

Knuth Cont.

TBA - in progress4: Combinatorial Algorithms5: Syntactic AlgorithmsMaybe - “God Willing”6: Theory of Context free languages7: 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, 1968Rockford 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 protectionSet 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 debatedSE 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/1Pascal- Nicholas Wirth, Sweden

Chapter 3 – 1952-1968

Early History of Software