Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "A Brief Introduction to the History of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing."— Presentation transcript:

1 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

2 Intro to History of Computing 4: programming languages2 History of Computing 4 1.History of the computer market: into the 4 th generation 2.Generations of programming languages 3.High level languages 4.Computing history heroes: the Turing Awards

3 Intro to History of Computing 4: programming languages3 1. 4 th 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 *.*

4 Intro to History of Computing 4: programming languages4 1. 4 th 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 File Open Print Close

5 Intro to History of Computing 4: programming languages5 1. the 4 th generation...  2003 common families of processor chips drive nearly all large and small computers  computer networks are as important as computers

6 Intro to History of Computing 4: programming languages6 1. 4 th 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

7 Intro to History of Computing 4: programming languages7 1. 4 th 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.

8 Intro to History of Computing 4: programming languages8 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

9 Intro to History of Computing 4: programming languages9 1.the market: from 1970 to 2001 computers 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

10 Intro to History of Computing 4: programming languages10 2. Programming languages  don’t forget the software! the history of computing includes software just as much as hardware  software is applications operating systems and environments utilities: compilers, editors...  all created by human effort as collections of related programs using programming languages

11 Intro to History of Computing 4: programming languages11 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 as the generations of computer architecture.

12 Intro to History of Computing 4: programming languages12 2. Language generations 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

13 Intro to History of Computing 4: programming languages13 2. Generations of programming languages -& computers programming languages 1.machine lang 1945 2.assembly lang 1951 3.high level lang 1954 60s 4.4GLs 70s 5.AI based 80s 6.network-aware 90s computer architectures 1.valves1945 2.transistors1959 3.Integrated1964 Circuits 4.PCs1981 many high level languages of different types

14 Intro to History of Computing 4: programming languages14 3. High level languages: the evolution of types of language [Brookshear Figure 5.2] plus S67 & Eiffel Simula-67Eiffel

15 Intro to History of Computing 4: programming languages15 3. High level languages: a family tree [from Eric Levenez] LISP ALGOL FORTRAN COBOL C APL Ada Pascal Modula

16 Intro to History of Computing 4: programming languages16 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

17 Intro to History of Computing 4: programming languages17 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

18 Intro to History of Computing 4: programming languages18 4. data control and program control - an Eiffel program from earlier 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) end end -- class BDM data control: the scope of count, max, min data control: the scope of i

19 Intro to History of Computing 4: programming languages19 4. data control and program control: machine language (g1)  add two numbers - see Brookshear p. 208 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

20 Intro to History of Computing 4: programming languages20 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, Price LD R6, Shipping ADD R0, R5, R6 ST R0, TotalCost HLT [adapted from Brookshear p.208 ]

21 Intro to History of Computing 4: programming languages21 4. control flow in assembly language ; 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

22 Intro to History of Computing 4: programming languages22 4. data control in assembly language ; 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

23 Intro to History of Computing 4: programming languages23 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) end end -- class BDM 4. data and flow control recap

24 Intro to History of Computing 4: programming languages24 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


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

Similar presentations


Ads by Google