Typology of program m ing languages
e Early Languages E
Typology of program m ing languages
Early Languages
1 / 71
The Tower of Babel
Typology of program m ing languages
Early Languages
2 / 71
Table of Contents
1
Fortran
2
ALGOL
3
COBOL
4
The second wave
5
The finale
Typology of program m ing languages
Early Languages
3 / 71
IBM Mathematical Formula Translator system
Fortran I, 1954-1956, IBM 704, a team led by John Backus.
Typology of program m ing languages
Early Languages
4 / 71
IBM 704 (1956)
Typology of program m ing languages
Early Languages
5 / 71
IBM Mathematical Formula Translator system
The m ain goal is user satisfaction (econom ical interest) rather than academ ic. Com piled language.
a single data structure : arrays com m ents arithm etics expressions DO loops subprogram s and functions I/O m achine independence
Typology of program m ing languages
Early Languages
6 / 71
FORTRAN’s success
Because: program m ers productivity easy to learn by IBM the audience was m ainly scientific sim plifications (e.g., I/O)
Typology of program m ing languages
Early Languages
7 / 71
FORTRAN I
CC
FIND THE MEAN OF N NUMBERS AND THE NUMBER OF VALUES GREATER THAN IT
DIMENSION A(99) REAL MEAN
READ(1,5)N
FORMAT(I2)
5
READ(1,10)(A(I),I=1,N)
- FORMAT(6F10.5)
- 10
SUM=0.0 DO 15 I=1,N
- 15
- SUM=SUM+A(I)
MEAN=SUM/FLOAT(N)
NUMBER=0
DO 20 I=1,N
IF (A(I) .LE. MEAN) GOTO 20
NUMBER=NUMBER+1
CONTINUE
20 25
WRITE (2,25) MEAN,NUMBER
FORMAT(11H MEAN = ,F10.5,5X,21H NUMBER SUP = ,I5)
STOP
Typology of program m ing languages
Early Languages
8 / 71
END
Fortran on Cards
Typology of program m ing languages
Early Languages
9 / 71
Fortrans
Typology of program m ing languages
Early Languages
10 / 71
Table of Contents
1
Fortran
2
ALGOL
3
COBOL
4
The second wave
5
The finale
Typology of program m ing languages
Early Languages
11 / 71
ALGOL, Demon Star, Beta Persei, 26 Persei
Typology of program m ing languages
Early Languages
12 / 71
ALGOL 58
Originally, IAL, International Algebraic Language.
1
Usable for algorithm publications in scientific reviews
2
As close as possible to the usual m athem atical notations
3
Readable without assistance
4
Autom atically translatable into m achine code
Meeting between 8 Am ericans and Europeans in Zurich. ALGOL 58.
Typology of program m ing languages
Early Languages
13 / 71
ALGOL 58
IAL was considered ”unspeakable and pom pous acronym ”
Introduced the fundam ental notion of com pound statem ent
I
restricted to control flow only not tied to identifier scope
I
Used during 1959 for publication Prim ary contribution was to later languages: a basis for JOVIAL ꢀick, MAD, and NELIAC.
Early com prom ise design soon superseded by ALGOL 60
Typology of program m ing languages
Early Languages
14 / 71
JOVIAL
”Jules Own Version of the International Algorithm ic Language.”
Developed to write soſtware for the electronics of m ilitary aircraſt by Jules Schwartz in 1959.
Runs the Advanced Cruise Missile, B-52, B-1, and B-2 bom bers, C-130, C-141, and C-17 transport aircraſt, F-15, F-16, F-18, and F-117 fighter aircraſt, LANTIRN, U-2 aircraſt, E-3 Sentry AWACS aircraſt, Special Operations Forces, Navy AEGIS cruisers, Arm y Multiple Launch Rocket System (MLRS), Arm y UH-60 Blackhawk helicopters, ..
Typology of program m ing languages
Early Languages
15 / 71
ALGOL 60
Figure: John Mac Carthy, Fritz Bauer, Joe Wegstein. Boꢁom row: John Backus, Peter Naur, Alan Perlis
Typology of program m ing languages
Early Languages
16 / 71
ALGOL 60: Novelties
Use of BNF to describe the syntax Inform al sem antics Block structure Dynam ic arrays Advanced control flow (if, for…) Recursivity
Typology of program m ing languages
Early Languages
17 / 71
ALGOL 60: One syntax, three lexics
Reference language (used in the ALGOL-60 Report)
a[i+1] := (a[i] + pi x r^2) / 6.021023;
Typology of program m ing languages
Early Languages
18 / 71
ALGOL 60: One syntax, three lexics
Reference language (used in the ALGOL-60 Report)
a[i+1] := (a[i] + pi x r^2) / 6.021023;
Publication language
ai+1 ← {ai + π × r2}/6.02 × 1023;
Typology of program m ing languages
Early Languages
18 / 71
ALGOL 60: One syntax, three lexics
Reference language (used in the ALGOL-60 Report)
a[i+1] := (a[i] + pi x r^2) / 6.021023;
Publication language
ai+1 ← {ai + π × r2}/6.02 × 1023;
Hardware representations – im plem entation dependent
a[i+1] := (a[i] + pi * r^2) / 6.02E23; or a(/i+1/) := (a(/i/) + pi * r ** 2) / 6,02e23; or A(.I+1.) .= (A(.I.) + PI * R 'POWER' 2) / 6.02'23.,
Typology of program m ing languages
Early Languages
18 / 71