Chapter 3 - MSU Computer Science
Download
Report
Transcript Chapter 3 - MSU Computer Science
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 – (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
Programming Languages
One-to-one binary (machine) code
Macro instructions
Symbolic Addressing (variables)
Systems
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% 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 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)
–
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/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 – George Forsythe
–
–
Mathematics 1961
Separate Dept. 1965
Study of computers vs. Study of Algorithms
ACM Curriculum ‘68 (2013)
Computer Science (cont.)
– ACM – Curriculum - no h.w.
1964 -12 University degrees
1968 - 100
1980 - Most popular major in the US
1968
Donald Knuth- “The Art of
Computer Programming”
Published 1st volume of 7
1: Fundamental Algorithms
2: Semi numerical Algorithms
3: Searching and Sorting
1968
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
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
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
vendors
door for commercial
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