Backus Turing Award Paper PDF
Backus Turing Award Paper PDF
Backus Turing Award Paper PDF
The 1977 A C M Turing Award was presented to John Backus putations called Fortran. This same group designed the first
at the A C M Annual Conference in Seattle, October 17. In intro- system to translate F o r t r a n programs into machine language.
ducing the recipient, Jean E. Sammet, Chairman of the Awards They employed novel optimizing techniques to generate fast
Committee, made the following comments and read a portion of machine-language programs. Many other compilers for the lan-
the final citation. The full announcement is in the September guage were developed, first on IBM machines, and later on virtu-
1977 issue of Communications, page 681. ally every make of computer. Fortran was adopted as a U.S.
"Probably there is nobody in the room who has not heard of national standard in 1966.
Fortran and most of you have probably used it at least once, or at During the latter part of the 1950s, Backus served on the
least looked over the shoulder of someone who was writing a For- international committees which developed Algol 58 and a later
tran program. There are probably almost as many people who version, Algol 60. The language Algol, and its derivative com-
have heard the letters BNF but don't necessarily know what they pilers, received broad acceptance in Europe as a means for de-
stand for. Well, the B is for Backus, and the other letters are veloping programs and as a formal means of publishing the
explained in the formal citation. These two contributions, in my algorithms on which the programs are based.
opinion, are among the half dozen most important technical In 1959, Backus presented a paper at the UNESCO confer-
contributions to the computer field and both were made by John ence in Paris on the syntax and semantics of a proposed inter-
Backus (which in the Fortran case also involved some col- national algebraic language. In this paper, he was the first to
leagues). It is for these contributions that he is receiving this employ a formal technique for specifying the syntax of program-
year's Turing award. ming languages. The formal notation became known as B N F -
The short form of his citation is for 'profound, influential, standing for "Backus N o r m a l Form," or "Backus Naur F o r m " to
and lasting contributions to the design of practical high-level recognize the further contributions by Peter Naur of Denmark.
programming systems, notably through his work on Fortran, and Thus, Backus has contributed strongly both to the pragmatic
for seminal publication of formal procedures for the specifica- world of problem-solving on computers and to the theoretical
tions of programming languages.' world existing at the interface between artificial languages and
The most significant part of the full citation is as follows: computational linguistics. Fortran remains one of the most
' . . . Backus headed a small IBM group in New York City widely used programming languages in the world. Almost all
during the early 1950s. The earliest product of this group's programming languages are now described with some type of
efforts was a high-level language for scientific and technical corn- formal syntactic definition.' "
a p n d l o [fog, afoh] _-- o f o a p n d l o [g,h] O u r p r o o f will take the f o r m o f showing that the follow-
PROOF. W e show that, for every object x, both o f the ing function, R,
a b o v e functions yield the same result. D e f R ~ nullo 1 ~ ~;
CASE 1. h:x is neither a sequence nor ~. apndlo[aIPodistlo[1 o 1, 2], MM'o[tlo 1, 2]]
T h e n both sides yield Z when applied to x.
CASE 2. h:x = 'b. T h e n is, for all pairs <x,y>, the same function as M M ' . R
apndlo[fog, afoh]: x "multiplies" two matrices, w h e n the first has m o r e than
= apndl: <fog:x, ,~> = < f ' ( g : x ) > zero rows, by c o m p u t i n g the first row o f the " p r o d u c t "
afoapndlo[g,h ]: x (with aIpodistlo[lo 1, 2]) and adjoining it to the "prod-
= afoapndl: <g:x, ~> = af:<g:x> uct" o f the tail o f the first matrix and the second matrix.
= <f.'(g:x)>
T h u s the t h e o r e m we want is
PROOF. We verify thatp ~ g; Q ( f ) is linearly expansive. Thus we have proved t h a t f terminates on precisely the
Let pn, qn and k be any functions. Then set of nonnegative integers and that it is the factorial
function thereon.
Q(en ~ qn; k)
=-- ho[i, (p~ ~ qn; k)oj] by (2) 12.6 An Iteration Theorem
~- ho[i, (pnoj---~ qnOj; kj)] by ILl This is really a corollary of the recursion theorem. It
=- h ( p n j - - ~ [i, q~oj]; [i, koj]) by IV. 1 gives a simple expansion for many iterative programs.
--- pnoj--~ ho[i, qnOj]; h[i, koj] by II.2
p n j ~ Q(qn); Q(k) by (2) (5) ITERATION THEOREM:L e t f be the solution (i.e., the least
solution) of
Thus ifpo ~- p and qo -= g, then (5) gives pl ~ p o j and
q~ = Q(g) and in general gives the following functions f _-- p--~ g; hofok
satisfying (LE2) then
pn~pj n and qnmQ~(g). (6) f _-- p ~ g; p o k ~ hogok; ... ; p o k ~ ~ hnogo~; ...
Finally, PROOF. Let h' =- ho2, i' --- id, f --- k, then
Q() -= ho[i, oj] f -= p ~ g; h ' o [ i ' , f o f ]
.~ ho[i, ] by III.l.l
since ho2o[id, f o k ] ~ h o f o k by 1.5 (id is defined except
ho& by 1.9
for Z, and the equation holds for _1_).Thus the recursion
--- i by IlL 1.1. (7)
theorem gives
Thus (5) and (6) verify (LE2) and (7) verifies (LE3), with f -= p - - ~ g; ... ;pokn--~ Q"(g); ...
E1 -= Q. If we let E l f ) ~ p ~ g; Q ( f ) , then we have
(LE1); thus E is linearly expansive. Since f is a solution where
o f f ~ E ( f ) , conclusion (3) follows from (6) and (LE5). Qn(g) ~ ho2o[id, Qn-l(g)ok]
Now h o Q n - l ( g ) o k _= hnogok~
Qn(g) m ho[i, Q n - l ( g ) o j ] byI.5 []
ho[i ' ho[ioj ' .... ho[iojn-1, g o j n ] ... ]] 12.6.1 Example: Correctness proof for an iterative
factorial function. L e t f be the solution of
by I. 1, repeatedly
f ~ eq0ol ~ 2;fo[so 1, ]
/ho[i, ioj, .... iojn-~,'goj n] by 1.3 (8)
where Def s ~ - o [ i d , ]] (substract 1). We want to prove
Result (8) is the second conclusion (4). [] t h a t f : < x , l > = x! iff x is a nonnegative integer. Let p
12.5.1 Example: correctness proof of a recursive eq0o 1, g ~- 2, h ~ id, k ~ [so 1, ]. Then
factorial function. L e t f be a solution of
f --- p ~ g; h o f o k
f = - eq0 ~ ]; xo[id, fos]
and so
where
f_--p-..~ g; ... ; p o d __~ g o d ; ... (1)
Def s -= -o[id, ]] (subtract 1).
by the iteration theorem, since h n ~ id. We want to show
T h e n f satisfies the hypothesis of the recursion theorem that
with p m eq0, g --- L h =- x, i --- id, and j --- s. Therefore
pair--~--~ k n ~- [an, bn] (2)
f ~- eq0 ~ ]; ... ; eq0os n ~ Qn(]); ...
holds for every n _> l, where
and
an =- s% 1 (3)
Qn(/) = / o [id, idos . . . . . idos n-l, ]osn] . b n ~ / X o [sn--lo l . . . . . $o 1, 1, 2] (4)
Now idos k -~ s k by III.2 and eq0os n ~ ios n _-- ] by
Now (2) holds for n = 1 by definition of k. We assume
IliA, since eq0os~:x implies defmedosn:x; and also
it holds for some n _> 1 and prove it then holds for
eq0osn:x ~ eq0: (x - n) --- x=n. Thus if eq0osn: x = T,
n + 1. Now
then x = n and
pair ~ ~+~ -= k o ~ w_ [so 1, x]o[a,, b,] (5)
Qn(i): n = n x (n - 1) x ... x (n - (n - 1))
x (1: (n - n)) = n!. since (2) holds for n. And so
628 Communications August 1978
of Volume 2 !
the A C M Number 8
pair --~---~ k "+~ =- [San, x o [ a . , bn]] by I.l and 1.5 (6) since pn and p~ provide the qualification needed for q,
q~ ~ hno2.
T o pass from (5) to (6) we must check that whenever an N o w suppose there is an x such t h a t f : x # g:x. T h e n
or bn yield in (5), so will the right side of (6). N o w there is an n such that pi:x = p~:x = F for i < n, and pn:X
SOan ~. Sn+l 1 =-- an+l (7) p~:x. F r o m (12) and (13) this can only h a p p e n when
Xo[an, b,] ~ / X o [sno 1, s n-l 1. . . . . so 1, 1, 2] h%2:x = d_. But since h is _L-preserving, hm2:x = _1_for
--= bn+] by 1.3. (8) all m >_ n. H e n c e j q x = g:x = J_ by (14) and (15). This
contradicts the assumption that there is an x for which
Combining (6), (7), and (8) gives f i x # g:x. H e n c e f ~ g.
pair---~--~ k n+l -= [an+l, bn+l]. (9) This example (by J. H. Morris, Jr.) is treated more
elegantly in [16] on p. 498. However, some may fred that
Thus (2) holds for n = 1 and holds for n + l whenever the above treatment is more constructive, leads one more
it holds for n, therefore, by induction, it holds for every mechanically to the key questions, and provides more
n _> 1. N o w (2) gives, for pairs: insight into the behavior o f the two functions.
definedok n --~--~ p o k n ~_ eq0o lo[an, bn]
.~ eqOoan ~ eq0os~o I (10) 12.7 Nonlinear Equations
The preceding examples have concerned "linear"
d e f m e d o ~ ---~---~gok ~
equations (in which the " u n k n o w n " function does not
2o[an, bn] - - / o [s~-'ol . . . . . sol, 1, 2] (11)
have an argument involving itself). T h e question o f the
(both use 1.5). N o w (1) tells us t h a t f ' < x , l > is defined iff existence of simple expansions that "solve .... quadratic"
there is an n such that pok~:<x,l> = F for all i < n, and and higher order equations remains open
p o k ~ : < x , l > = T, that is, by (10), eq0osn:x = T, i.e., T h e earlier examples concerned solutions off--- E ( f ) ,
x = n ; and g o k ~ : < x , l > is defined, in which case, by (11), where E is linearly expansive. T h e following example
involves an E ( f ) that is quadratic and expansive (but
f:<x,l> =/x:<l, 2 . . . . . x - l , x, 1> = n!, not linearly expansive).
which is what we set out to prove. 12.7.1 Example: proof of idempotency ([16] p. 497).
12.6.2 Example: proof of equivalence of two iterative L e t f b e the solution o f
programs. In this example we want to prove that two f - = E ( f ) m p---~ id;f2oh. (1)
iteratively defined p r o g r a m s , f and g, are the same func-
tion. L e t f b e the solution o f W e wish to prove that f - = f2. We verify that E is
expansive (Section 12.4.1) with the following approxi-
f ~ po I ~ 2; hofo[ko 1, 2]. (1) mating functions:
Let g be the solution o f ./~ _= j_ (2a)
g ~ po 1 ~ 2; go[ko 1, ho2].
(2) f" -= P --> id; ... ; poh n-1 --> hn-1; 1 for n > 0 (2b)
First we note that p - - ~ fn ~- id and so
Then, by the iteration theorem:
(3) phi ' >fnhi ~- hi. (3)
f ~ p0 "--~ q0; - ;pn --'~ qn; --
t t.
g -= pS"--~ qS; .... /On""'->q ..... (4) N o w E(fo) ~ p ---~ id; J_2oh -=fi, (4)
where (letting r ~ id for any r), for n = 0, 1.... and
pn ~_polo[kol, 2]" ~ p o l o [ k % l , 2] by 1.5.1 (5) E(fn)
qn =- h%2o[kol, 2] n --- hno2o[~o 1, 2] by 1.5.1 (6) mp ~ id;fn(p ~ id; ... ; p h n-1 ~ hn-1; 5_)oh
p'n _= p o l o [ k o l, ho2] n --- po lo[kno 1, hno2] by 1.5.1 (7) m p --~ id;fno(poh ---~ h; ... ; poh n ~ hn; j_oh)
q'n --- 2o[kol, ho2] n =- 2o[k%1, h"o2] by 15.1. (8) -= p---~ id; ph--~ fnh; ... ; phn---> fnhn; fn-l-
p ~ id; poh ---> h; ... ; poh n ~ hn; J_ by (3)
Now, from the above, using 1.5, -= fn+l. (5)
defmedo2 > > p . E pok"o 1 (9) T h u s E is expansive by (4) and (5); so by (2) and Section
defmedohno2 > ~ p~ ~_pok%l (10) 12.4.1 (E4)
defmedok%l , }q. mq~mhn2 (11)
f_--p~ i d ; ... ; p o h " ~ hn; . . . . (6)
Thus
But (6), by the iteration theorem, gives
defmedohno2 ~ > defmedo2 ~ 7' (12)
defmedohno2, } } pn m p~ (13) f_---p ~ id;foh. (7)
and Now, i f p : x = T, t h e n f . x = x = f 2 : x , by (1). I f p : x = F,
then
f ~ po ~ q0; . ; p n ~ h"o2; ... (14)
g ~p~'-'~ q~; .., p -' ~ hn2; ... (15) fiX = f % h : x by (1)