Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.