Download Chapter 3 - MSU Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Go (programming language) wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

Programming language wikipedia , lookup

Software quality wikipedia , lookup

Object-oriented programming wikipedia , lookup

Program optimization wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Compiler wikipedia , lookup

Software bug wikipedia , lookup

Interpreter (computing) wikipedia , lookup

Structured programming wikipedia , lookup

Transcript
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