Lectures Next
Instruction set complexity - Two general models
  CISC - Complex instruction set computer
   vs. 
  RISC - Reduced instruction set computer (mid 80s)

Early systems hard coded to specific tasks.

Plug boards allowed for 'easy' reprogramming.


source : https://en.wikipedia.org/wiki/Plugboard

Punch cards with machine code separated the code from the hardware.


Introduction of code memory on system to allow loading of machine code programs.
  Code tightly coupled to CPU.

Introduction of compiled programs.
  Begins the separation of the task from the hardware.

FLOW-MATIC (1954ish) - B-0 Business language v 0 - first compiler
   Developed under the leadership of Grace Hopper
   Precursor to COBOL.
   Allowed some code independence from hardware.

Fortran - 1957 - Formula Translation (IBM)
  designed to implement mathematical formulas as code algorithm.
  + architecture independent
  + allowed porting of programs to other architectures.
  - required compilers to be re-coded in machine code of particular 
    architecture.

COBOL - 1959 - COmmon Business Oriented Language 
  designed for general data manipulation and report generation.
  + Architecture independent.
  + Allowed programs to be written in an english style.
  + Individual instructions representing complex sequence of actions.
  - Required compilers to be re-coded in machine code of particular 
    architecture.
  + But once compiler built, porting existing program over to new
    architecture fairly easy.

C language - 1969-73, came after the language B :)
  + lower level programming than either COBOL or Fortran.
  + more flexible for problem solving.
  + architecture independent.
  + was used to develop itself.
  + Full C compiler could be built by 
    starting with small machine/assembler program that built
      a set of primitive C commands and a rudimentary C compiler.
    which was used to add features to the C compiler,
      until it was a fully functional C compiler.
  + made porting of any C program on to any new architecture less burdensome. 
  + was used to develop the Unix operating system.
Next