|
|
|
Initially short pieces of code to direct output
to a printer or accept input from a card reader. |
|
Then background programs to handle requests from
multiple terminals and run multiple programs. |
|
|
|
|
|
Now- |
|
Device control |
|
File maintenance (creation, deletion, naming,
grouping, transfer to and from disk) |
|
Multitasking |
|
Time Share (on larger machines) |
|
Interface/presentation efforts (GUI) |
|
Security |
|
|
|
|
|
Major Examples |
|
MS-DOS |
|
Windows |
|
MacOS |
|
UNIX |
|
Linux |
|
|
|
|
|
Application Software - Computer programs that
perform work for a user |
|
Initially written by users |
|
Available languages – |
|
Machine |
|
Assembler |
|
Procedural (Pascal, COBOL) |
|
4GL |
|
|
|
|
|
|
Common Elements of all languages: |
|
Stored program concept |
|
Flow of control |
|
Sequence |
|
Selection |
|
Iteration |
|
Subroutine |
|
|
|
|
|
|
Assembler Example: |
|
Pascal: J:= K + M |
|
Assembler Equivalent: |
|
mov ax, K |
|
add ax, M |
|
mov J, ax |
|
|
|
|
|
|
Another Assembler Example: |
|
Pascal:
J := K + M + N + P |
|
Assembler Equivalent: |
|
mov ax, K |
|
add ax, M |
|
add ax, N |
|
add ax, P |
|
mov J, ax |
|
|
|
|
|
|
|
Pascal Example: |
|
Readln(hrs); |
|
If hrs > 40 |
|
THEN grosspay := hrrate*40 + (hrs-40)*1.5*hrrate |
|
ELSE grosspay:= hrs * hrrate; |
|
Writeln(‘Gross pay was “,grosspay); |
|
|
|
|
|
Dan Bricklin’s VISICALC |
|
1978 - Harvard MBA student |
|
Created a “spreadsheet” |
|
Ran on Apple II computers |
|
Little initial interest |
|
Became software “tail” wagging the “hardware
“dog” (or “hardware drag”) |
|
|
|
|
|
|
|
Branched out into VisiDex, Visigragh |
|
Hired Mitch Kapor to program Visigraph |
|
Kapor used pay and experience to create
Lotus-1-2-3 |
|
Visicalc was not patented (software patents were
not legal until 1981) |
|
Visicalc sold to Lotus in 1985 |
|
and discontinued |
|