A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of...

24
A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing Chris Johnson April/May 2003
  • date post

    18-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    1

Transcript of A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of...

Page 1: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

A Brief Introduction to theHistory of Computing - 4

ANU Faculty of Engineering and ITDepartment of Computer Science

COMP1200 Perspectives on Computing

Chris Johnson April/May 2003

Page 2: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 2

History of Computing 4

1. History of the computer market:into the 4th generation

2. Generations of programming languages

3. High level languages

4. Computing history heroes:the Turing Awards

Page 3: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 3

1. 4th generation market: 1981-

1981 IBM PC – a 16 bit personal computer for office desktops;command line operating system MS-DOS. “Word processing” becomes a software application for PC not a dedicated box

DOS:A\ dir *.*

Page 4: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 4

1. 4th generation market: 1981- productivity software: word processor, spreadsheet, paint

and draw 1984 Apple Macintosh WIMP 1985 Microsoft Windows for PC applications become centred on

Graphical User Interface,push use of memory and processor speed enormously

FileOpenPrintClose

Page 5: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 5

1. the 4th generation...

2003 common families of processor chips drive nearly all large and small computers

computer networks are as important as computers

Page 6: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 6

1. 4th generation market: 1981 – mainframes, personal computers

mainframes continue as main computers – re-invented as servers to enterprise networks of personal workstations and PCs

mid 1980s: local computer networks transform the personal computer to the enterprise network; the Internet for email

mid 1990s: the World Wide Web on the Internet transforms the desktop PC from a tool for local processing and information management into a communication tool

Page 7: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 7

1. 4th generation market: manufacturers

The biggest manufacturers of servers, workstations, desktops, laptops: market is fragmented, volatile, year by year

Compaq (includes DEC) [1 million servers; 14 million PCs worldwide; 12% of Australian PC market]

Dell [700k servers; 11% Australian PC market] IBM [660,000 servers] Hewlett-Packard [10%] now merged Compaq 2002 Sun [360,000 workstations; 9% Australian PC market] Apple [4% of Australian PC market] NEC [6 million PCs world] many other small companies: 48% Australian PC market, 25%

servers, 80 million PCs 2001 figures from Gartner Group press release web pages

The software market is now the big money– Microsoft, Oracle.

Page 8: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 8

1. the market: from 1970...

mainframes: IBM and the BUNCH (approx 1968) IBM Burroughs->Sperry Rand/Unisys UNIVAC -------------------/ NCR Control Data Corporation CDC - supercomputers Honeywell

a few in UK (ICL), France (Bull), Germany (Siemens)

the minis (approx 1970) DEC Digital Equipment Corporation Data General Varian Hewlett-Packard... and others

the micros Apple (and Apricot and Acorn and...) Xerox Commodore ... many others

Page 9: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 9

1. the market: from 1970 to 2001computers a commodity: fragmented,volatile

Compaq (includes DEC & H-P)[1 million servers; 14 million PCs worldwide; 12% of Australian PC market]

Dell [700,000 servers] IBM [660,000 servers] Sun [360,000 workstations, servers] Apple [4% of Australian PC market] NEC [6 million PCs world] many other small companies:

48% Australian PC market, 25% servers,80 million PCs

2001 figures from Gartner Group press release web pages

Page 10: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 10

2. Programming languages don’t forget the software!

the history of computing includes softwarejust as much as hardware

software is applications operating systems and environments utilities: compilers, editors...

all created by human effortas collections of related programs using programming languages

Page 11: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 11

2. The Generations of programming languages

[from Brookshear Figure 5.1]

“Generations” of languages relate to the degree of problem- or human- orientation vs machine orientation.These generations are not the same asthe generations of computer architecture.

Page 12: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 12

2. Language generations 1,2,3

1. machine languages2. assembly languages3. high level languages

FORTRAN, COBOL, ALGOL, LISP

the biggest differences are in execution control structures,

(program control, flow control) data control modularity

Page 13: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 13

2. Generations ofprogramming languages -& computers

programming languages1. machine lang 19452. assembly lang 19513. high level lang 1954

60s

4. 4GLs 70s5. AI based 80s6. network-aware 90s

computer architectures

1. valves1945

2. transistors 19593. Integrated 1964

Circuits4. PCs 1981

many high level

languages of different

types

Page 14: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 14

3. High level languages: the evolution of types of language

[Brookshear Figure 5.2] plus S67 & Eiffel

Simula-67 Eiffel

Page 15: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 15

3. High level languages: a family tree

[from Eric Levenez]

LISP

ALGOL

FORTRAN

COBOL

C

APL

AdaPascal

Modula

Page 16: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 16

4. History of high level PLs: the elements of high level PLs

data control definition: naming and types storage life structure manipulation (arithmetic)

Object-Oriented languages Simula 67 C++ Smalltalk Eiffel 1985 Java 1995 C#

} program modularity

program execution control jumps, conditions, loops,

subroutine calls

abstraction subroutines nesting classes & inheritance

Page 17: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 17

4. Aspects of high level programming languages (1) program (execution) control

how the point of execution moves through the parts of the program

examples in Eiffel: if-statement, loop, function call

data control names of variables have a limited lifetime during

execution names have restricted visibility (scope) in parts of

the program examples in Eiffel:

function local variable, object feature variable

Page 18: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 18

4. data control and program control - an Eiffel program from earlierclass BDMcreation doit -- read a given number of ints, find min and maxfeature doit is

local count, max, min: INTEGER

doio.read_integer; count := io.last_integer -- omit promptsio.read_integer; max := io.last_integer; min := max

from i:=1until i=countloop

io.read_integer;if max < io.last_integer then max := io.last_integer endif min > io.last_integer then min := io.last_integer endi:=i+1

endio.put_string("The largest number was: "); io.put_integer(max)io.put_string(" and the smallest was: "); io.put_integer(min)

endend -- class BDM

data control:the scope ofcount, max, min

data control:the scope of i

Page 19: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 19

4. data control and program control: machine language (g1) add two numbers - see Brookshear p. 208

156C166D5056306EC000

Extending this "language" from a sequence of numbers to include comments makes life easier for the original programmer - and for the next programmer to read it.

;add Price (6C) and ShippingCost (6D), Total to 6E156C ;load 6C to R5166D ;load 6D to R65056 ;add them, result to R0306E ;store R0 to 6EC000 ;stop here

Page 20: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 20

4. data control and program control: assembly language (g2)

; data storage address definitions (these generate no instructions).DEF Price 6C.DEF Shipping 6D.DEF TotalCost 6E

; The actual instructions of the program; correspond exactly to the machine instructions above

; Add Price and Shipping to calculate TotalCost

LD R5, PriceLD R6, ShippingADD R0, R5, R6ST R0, TotalCostHLT

[adapted from Brookshear p.208]

Page 21: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 21

4. control flow in assembly language; pricing variables

- now with automatic layout in memoryPrice: .SZ 1

Shipping: .SZ 1TotalCost: .SZ 1

; if Shipping cost is greater than zero then; add Price and Shipping to calculate TotalCostLD R6, ShippingJZ R6, NoAddLD R5, PriceADD R0, R5, R6ST R0, TotalCostJMP Next

NoAdd: LD R6, Price ; else TotalCost equals PriceST R6, TotalCost

Next: HLT

Flow control is by test and jumps.

A loop is a jump back to anearlier point in the program

Page 22: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 22

4. data control in assembly language; pricing variables

Price: .SZ 1Shipping: .SZ 1TotalCost: .SZ 1

; if Shipping cost is greater than zero then; add Price and Shipping to calculate TotalCostLD R6, ShippingJZ R6, NoAddLD R5, Price control flow ADD R0, R5, R6ST R0, TotalCostJMP Next

NoAdd: LD R6, Price ; else TotalCost equals PriceST R6, TotalCost

Next: HLT Assembly language provides no data control.These labels are all just addresses,data and program instructions mixed together

Page 23: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 23

class BDMcreation doit -- read a given number of ints, find min and maxfeature doit is

local count, max, min: INTEGER

doio.read_integer; count := io.last_integer -- omit promptsio.read_integer; max := io.last_integer; min := max

from i:=1until i=countloop

io.read_integer;if max < io.last_integer then max := io.last_integer endif min > io.last_integer then min := io.last_integer endi:=i+1

endio.put_string("The largest number was: "); io.put_integer(max)io.put_string(" and the smallest was: "); io.put_integer(min)

endend -- class BDM

4. data and flow controlrecap

Page 24: A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing.

Intro to History of Computing 4: programming languages 24

4. other aspects of high level programming languages syntax

description of the form of constructs in the language

semantics description of the meaning of constructs of the

language compilers and interpreters

the means of translating a high level language program to execution on a computer

run-time system utility support for all programs of the language

during execution in the computer