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
Dec 18, 2015
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
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
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 *.*
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
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
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
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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]
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
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
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
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