250 likes | 390 Views
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. History of Computing 4. History of the computer market: into the 4 th generation
E N D
A Brief Introduction to theHistory of Computing - 4 ANU Faculty of Engineering and IT Department of Computer Science COMP1200 Perspectives on Computing Chris Johnson April/May 2003
History of Computing 4 • History of the computer market:into the 4th generation • Generations of programming languages • High level languages • Computing history heroes:the Turing Awards Intro to History of Computing 4: programming languages
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 *.* Intro to History of Computing 4: programming languages
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 onGraphical User Interface,push use of memory and processor speed enormously File Open Print Close Intro to History of Computing 4: programming languages
1. the 4th generation... • 2003 common families of processor chips drive nearly all large and small computers • computer networks are as important as computers Intro to History of Computing 4: programming languages
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 Intro to History of Computing 4: programming languages
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. Intro to History of Computing 4: programming languages
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 Intro to History of Computing 4: programming languages
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 Intro to History of Computing 4: programming languages
2. Programming languages • don’t forget the software! • the history of computing includes softwarejustas 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 Intro to History of Computing 4: programming languages
2. The Generations of programming languages “Generations” of languages relate to the degree of problem-orhuman-orientation vs machine orientation. These generations are not the same asthe generations of computer architecture. [from Brookshear Figure 5.1] Intro to History of Computing 4: programming languages
2. Language generations 1,2,3 • machine languages • assembly languages • high level languages • FORTRAN, COBOL, ALGOL, LISP • the biggest differences are in • execution control structures,(program control, flow control) • data control • modularity Intro to History of Computing 4: programming languages
programming languages machine lang 1945 assembly lang 1951 high level lang 1954 60s 4GLs 70s AI based 80s network-aware 90s computer architectures valves 1945 transistors 1959 Integrated 1964Circuits PCs 1981 2. Generations ofprogramming languages -& computers many high level languages of different types Intro to History of Computing 4: programming languages
3. High level languages: the evolution of types of language Simula-67 Eiffel [Brookshear Figure 5.2] plus S67 & Eiffel Intro to History of Computing 4: programming languages
3. High level languages: a family tree FORTRAN APL Modula Ada Pascal COBOL C ALGOL LISP [from Eric Levenez] Intro to History of Computing 4: programming languages
4. History of high level PLs: the elements of high level PLs • data control • definition: naming and types • storage life • structure • manipulation (arithmetic) • program execution control • jumps, conditions, loops, subroutine calls Object-Oriented languages • Simula 67 • C++ • Smalltalk • Eiffel 1985 • Java 1995 • C# } • program modularity • abstraction • subroutines • nesting • classes & inheritance Intro to History of Computing 4: programming languages
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 Intro to History of Computing 4: programming languages
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 Intro to History of Computing 4: programming languages
4. data control and program control: machine language (g1) • add two numbers - see Brookshear p. 208 156C 166D5056306EC000 • 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 Intro to History of Computing 4: programming languages
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 TotalCostLD R5, PriceLD R6, ShippingADD R0, R5, R6ST R0, TotalCostHLT [adapted from Brookshear p.208] Intro to History of Computing 4: programming languages
4. control flow in assembly language ; pricing variables - now with automatic layout in memory 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, 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 an earlier point in the program Intro to History of Computing 4: programming languages
4. data control in assembly language ; pricing variablesPrice: .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, Pricecontrol 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 Intro to History of Computing 4: programming languages
4. data and flow controlrecap 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 Intro to History of Computing 4: programming languages
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 Intro to History of Computing 4: programming languages