A B rie f In tro d u c tio n to th e H is to ry o f - - PowerPoint PPT Presentation

a b rie f in tro d u c tio n to th e h is to ry o f c o m
SMART_READER_LITE
LIVE PREVIEW

A B rie f In tro d u c tio n to th e H is to ry o f - - PowerPoint PPT Presentation

A B rie f In tro d u c tio n to th e H is to ry o f C o m p u tin g - 3 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing 2002-05 Chris Johnson In tro to


slide-1
SLIDE 1

A B rie f In tro d u c tio n to th e H is to ry

  • f C
  • m

p u tin g

  • 3

ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing 2002-05 Chris Johnson

slide-2
SLIDE 2

Intro to history of computing (3):Moore's Law and The Programmers 2

In tro to h isto ry o f co m p u tin g – 4 .3

M

  • ore’s Law: driver of 3

rd and 4 th generations

Programming languages- the generations video The Programmers

slide-3
SLIDE 3

Intro to history of computing (3):Moore's Law and The Programmers 3

2 . M

  • re

’s L a w

The density of transistors on a chip (i.e. the number per unit area) doubles every 18 months

1964: Gordon Moore (Intel) observed the fact and fitted the “law” to the figures up to that date literally “exponential growth” is it still true 40 years later? 1.5 or 2 year doubling what does doubling every 1.5 or 2 years

slide-4
SLIDE 4

Intro to history of computing (3):Moore's Law and The Programmers 4

2 . M

  • re

’s L a w

  • evidence

Number of transistors on one chip Intel 80x86 family processors

1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 0 0 0 0 0 6 0 0 0 0 0 7 0 0 0 0 0 8 0 0 0 0 0 9 0 0 0 0 0 1 0 0 0 0 0 0

1 9 7 2 7 8 8 3 8 6 9 0

transistors

1 2,500 2 30,000 3 100,000 4 300,000 1990 1,000,000 data from Intel

slide-5
SLIDE 5

Intro to history of computing (3):Moore's Law and The Programmers 5

2 . M

  • re

’s L a w

data from Intel 1,000,000 2500 <- - - - Linear scale - - - - -> log scale

1 2,500 2 30,000 3 100,000 4 300,000 1990 1,000,000

slide-6
SLIDE 6

Intro to history of computing (3):Moore's Law and The Programmers 6

2 . M

  • re

’s L a w

what are all those extra transistors used for

in processors? in memory (RAM) chips?

slide-7
SLIDE 7

Intro to history of computing (3):Moore's Law and The Programmers 7

Secondary storage use for online file storage I/O controllers Virtual memory Online file storage fast cache memory ALU registers pipelines

Memory

3 . 3

rd &

4

th g

e n e ra tio n : vo n N e u m a n n a rch ite ctu re w ith virtu a l m e m

  • ry a

n d ca ch e

slide-8
SLIDE 8

Intro to history of computing (3):Moore's Law and The Programmers 8

3 . M

  • re

’s L a w p a tte rn

  • f g

ro w th also applies to

speed of the transistors approximately and hence to

the speed of processors

num ber of transistors on one chip approximately and hence to

the size of each memory chip the complexity of processor chips

slide-9
SLIDE 9

Intro to history of computing (3):Moore's Law and The Programmers 9

3 . 4 th g e n e ra tio n (m y n um b e rin g )

Integrated circuits mark the start of 3 rd generation - but no hardware change marks the start of the 4 th a change in packaging and utilisation: desktop personal computers e.g. Apple II 1979, Apple Macintosh 1984 IBM PC personal computer 1981 personal productivity tools: spreadsheets, word processing programs (and Pow erpoint Pow erpoint) GUI – W IMP interface W indows–Icons–Menus-Pointer invented 1975 Xerox PARC

slide-10
SLIDE 10

Intro to history of computing (3):Moore's Law and The Programmers 10

4 . T h e P ro g ra m m e rs

what did programmers do with these changing generations of computers as they became so much more powerful (bigger storage, faster processing) who were they? what program ming languages and systems? what applications did they create?

slide-11
SLIDE 11

Intro to history of computing (3):Moore's Law and The Programmers 11

R e a d in g a n d re v ie w q u e s tio n s

Brookshear

section 6.1 – Q1, 2, 4 section 6.2 – Q3, Q4 section 6.3 – Q1, Q4, Q5 review questions chapter 6: 1, 3, 10, 13, 12.

Brookshear Appendix D High Level Program ming Language examples

slide-12
SLIDE 12

Intro to history of computing (3):Moore's Law and The Programmers 12

le c tu re p re s e n ta tio n re p la c e d b y v id e

  • fro

m th is p

  • in

t

The Programmers video 30 minutes

slide-13
SLIDE 13

Intro to history of computing (3):Moore's Law and The Programmers 13

n

  • te

s a s s u b s titu te fo r v id e

  • ...

The notes in the following slides were not presented in class but are a supplement and substitute for the video

slide-14
SLIDE 14

Intro to history of computing (3):Moore's Law and The Programmers 14

4 . P ro g ra m m in g la n g u a g e s

don’t forget the software!

the history of computing includes software just as much as hardware

software is

applications

  • perating systems and environments

utilities: compilers, editors...

all created by human effort as collections of related programs using programming languages

slide-15
SLIDE 15

Intro to history of computing (3):Moore's Law and The Programmers 15

  • 4. The G

enerations of program m ing languages

[from Brookshear Figure 6.1]

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

slide-16
SLIDE 16

Intro to history of computing (3):Moore's Law and The Programmers 16

4 . L a n g u a g e g e n e ra tio n s 1 ,2 ,3

1.

machine languages

2.

assembly languages

3.

high level languages

FORTRAN, COBOL, ALGOL, LISP

the biggest differences are in

execution control structures, (program control, flow control) data control modularity

slide-17
SLIDE 17

Intro to history of computing (3):Moore's Law and The Programmers 17

4 . G e n e ra tio n s o f p ro g ra m m in g la n g u a g e s -& co m p u te rs

programming languages

2.

machine lang 1945

3.

assembly lang 1951

4.

high level lang 1954 60s

5.

4GLs 70s

6.

AI based 80s

7.

network-aware 90s computer architectures

2.

valves 1945

3.

transistors 1959

4.

Integrated 1964 Circuits

5.

PCs 1981

many high level languages of different types

slide-18
SLIDE 18

Intro to history of computing (3):Moore's Law and The Programmers 18

5 . H ig h le v e l la n g u a g e s : th e e v

  • lu

tio n

  • f ty

p e s

  • f

la n g u a g e

[Brookshear Figure 6.2] plus Simula 67 & Eiffel

Simula-67 Eiffel

slide-19
SLIDE 19

Intro to history of computing (3):Moore's Law and The Programmers 19

  • 5. H

igh level languages: a fam ily tree

[from Eric Levenez] LISP ALGOL FORTRAN COBOL C APL Ada Pascal Modula

slide-20
SLIDE 20

Intro to history of computing (3):Moore's Law and The Programmers 20

5 . H isto ry o f h ig h le ve l P L s: th e e le m e n ts o f h ig h le ve l P L s

data control

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

Object-Oriented languages

S im ula 67 C ++ S m alltalk E iffel 1985 Java 1995 C #

}

program modularity program execution control

jumps, conditions, loops, subroutine calls

abstraction

subroutines nesting classes & inheritance

slide-21
SLIDE 21

Intro to history of computing (3):Moore's Law and The Programmers 21

5 . A sp e cts o f h ig h le ve l p ro g ra m m in g la n g u a g e s (1 )

program (execution) control

how the point of execution moves through the parts

  • f the program

examples in Java:

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 Java:

slide-22
SLIDE 22

Intro to history of computing (3):Moore's Law and The Programmers 22

5 . d a ta co n tro l a n d p ro g ra m co n tro l - a n E iffe l p ro g ra m ve ry like Ja va

class BDM creation doit -- read a given number of ints, find min and max feature doit is local count, max, min: INTEGER do io.read_integer; count := io.last_integer

  • - omit prompts

io.read_integer; max := io.last_integer; min := max from i:=1 until i=count loop io.read_integer; if max < io.last_integer then max := io.last_integer end if min > io.last_integer then min := io.last_integer end i:=i+1 end io.put_string("The largest number was: "); io.put_integer(max) io.put_string(" and the smallest was: "); io.put_integer(min)

data control: the scope of count, max, min data control: the scope of i

slide-23
SLIDE 23

Intro to history of computing (3):Moore's Law and The Programmers 23

5 . d a ta co n tro l a n d p ro g ra m co n tro l: m a ch in e la n g u a g e (g e n 1 )

add two numbers - see Brookshear p. 226 156C 166D 5056 306E C000 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 6E 156C ;load 6C to R5 166D ;load 6D to R6 5056 ;add them, result to R0 306E ;store R0 to 6E C000 ;stop here

slide-24
SLIDE 24

Intro to history of computing (3):Moore's Law and The Programmers 24

5 . d a ta co n tro l a n d p ro g ra m co n tro l: a sse m b ly la n g u a g e (g e n 2 )

; 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, Price LD R6, Shipping ADD R0, R5, R6 ST R0, TotalCost HLT [adapted from Brookshear p.226]

slide-25
SLIDE 25

Intro to history of computing (3):Moore's Law and The Programmers 25

5 . co n tro l flo w in a sse m b ly la n g u a g e

; pricing variables

  • now with automatic layout in memory

Price: .SZ 1 Shipping: .SZ 1 TotalCost: .SZ 1 ; if Shipping cost is greater than zero then ; add Price and Shipping to calculate TotalCost LD R6, Shipping JZ R6, NoAdd LD R5, Price ADD R0, R5, R6 ST R0, TotalCost JMP Next NoAdd: LD R6, Price ; else TotalCost equals Price ST R6, TotalCost Next: HLT

Flow control is by test and jumps. A loop is a jump back to an earlier point in the program

slide-26
SLIDE 26

Intro to history of computing (3):Moore's Law and The Programmers 26

5 . d a ta co n tro l in a sse m b ly la n g u a g e (g e n 2 )

; pricing variables Price: .SZ 1 Shipping: .SZ 1 TotalCost: .SZ 1 ; if Shipping cost is greater than zero then ; add Price and Shipping to calculate TotalCost LD R6, Shipping JZ R6, NoAdd LD R5, Price control flow ADD R0, R5, R6 ST R0, TotalCost JMP Next NoAdd: LD R6, Price ; else TotalCost equals Price ST R6, TotalCost Next: HLT

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

slide-27
SLIDE 27

Intro to history of computing (3):Moore's Law and The Programmers 27

class BDM creation doit -- read a given number of ints, find min and max feature doit is local count, max, min: INTEGER do io.read_integer; count := io.last_integer

  • - omit prompts

io.read_integer; max := io.last_integer; min := max from i:=1 until i=count loop io.read_integer; if max < io.last_integer then max := io.last_integer end if min > io.last_integer then min := io.last_integer end i:=i+1 end io.put_string("The largest number was: "); io.put_integer(max) io.put_string(" and the smallest was: "); io.put_integer(min)

5 . d a ta a n d flo w co n tro l re ca p (g e n 3 )

slide-28
SLIDE 28

Intro to history of computing (3):Moore's Law and The Programmers 28

5 . o th e r a sp e cts o f h ig h le ve l p ro g ra m m in g la n g u a g e s

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