You are on page 1of 8

1972 ACM Tari~g

Award Led~re
[Extract from the Turing Award Ci- glossary can possibly indicate. The sophical addresses at ~HP, ~ his al-
tation read by M.D, McI[roy, chair- precious gift that this Turing Award ready classic papers on cooperating
man o/the A CM Tzer#eg A ward C'om- acknowledges is Dijkstra's style: his sequential processes/ and his mem-
mittee, at the preser~tatio~ of this approach to programming as a high, orable indictment of the go-to state-
lecture on Aztgzcst 14, I972, at the intellectual challenge; his eloquent ment.:' An influential series of letters
A C M A nnuaI Coe~ference in Bostoa.] insistence and practical demonstra- by Dijkstra have recently surfaced as
The working vocabulary of pro- tion that programs should be com- a polished monograph on the art of
grammers everywhere is studded with posed correctly, not just debugged composing programs?
words originated or forcefully prom- into correctness; and his illuminating We have come to value good pro-
ulgated by E.W. Dijkstra-display, perception of problems at the foun.- grams in much the same way as we
deadly embrace, semaphore, go-to- dations of program design. He has value good literature. And at the
less programming, structured pro- published about a dozen papers, both center of this movement, creating and
gramming. But his influence on pro- technical and reflective, among which reflecting patterns no less beautiful
gramming is more pervasive than any are especially to be noted his philo- than useful, stands E.W. Dijkstra.

The Humble Programmer


b y E d s g e r W. D i j k s t r a

As a result of a long sequence I was supposed to study theoretical


of coincidences I entered the pro- physics at the University of Leiden
gramming profession officially on the simultaneously, and as I found the
first spring morning of i952, and as two activities harder and harder ,to
far as I have been abte to trace, i combine, I had to make up my
was the first Dutchman to do so in mind, either to stop programming
my country, tn retrospect the most and become a real, respectable theo-
amazing thing is the slowness with retical physicist, or to carry my study
which, at least in my part of the of physics to a formal completion
world, the programming profession only, with a minimum of effort, and
emerged, a slowness which is now to b e c o m e . . . , yes what? A pro-
hard to believe. But I am grateful for grammer? But was that a respect-
two vivid recollections from that able profession? After all, what was
period that establish that slowness programming? Where was the sound
beyond any doubt. body of knowledge that could sup-
After having programmed for Copyright © 1972, Association for
some three years, i had a discussion Computing Machinery, Inc. General per-
mission to republish, but not for profit,
with van Wijngaarden, who was then all or part of this material is granted,
my boss at the Mathematical Centre provided that reference is made to this
publication, to its date of issue, and to
in A m s t e r d a m - a discussion for the fact that reprinting privileges were
which I shall remain grateful to him granted by permission of the Association
for Computing Machinery.
as long as I live. The point was that 1,2,3,4 Footnotes are on page 866.

59 Communications October 1972


of Volume 15
the ACM Number 10
port tt as a n mtellectuaJ!ly respectable tion today. While we pursue our cance, and also because it was pat-
discipline? i remember quite vividly analysis, we shall see how many ently obvious that this machine wouht
how I envied my h a r d w a r e col- common misunderstandings about have a limited lifetime, he knew that
leagues, who, when asked about their the true nature of the programming very little of his work would have
professional competence, could at task can be traced back to that now a lasting value. Firlally~ there is
least point out that they knew every- distant past. yet another circumstance that had a
thing about vacuum tubes, ampliiiers The first automatic electronic profound influence on the program-
and the rest, whereas I felt that, computers were all unique, single- tour's attitude toward his work: ot~
when faced with that question, I copy machines and they were att to the one hand, besides being unre-
would stand empty-handed. Full of be found in an environment with liable, his machine was us,mlty too
misgivings i knocked on van Wijn- the exciting flavor of an experimental slow and its memory was usually
gaarden's office door, asking him laboratory. Once the vision of the too small, i.e, he was faced with
whether I couM speak to him for a automatic computer was there, its a pinching shoe, while on the other
moment; when I left his office a realization was a tremendous chab hand its usuaIty somewhat queer
number of hours later, I was an- lunge to the electronic technology order code would cater for the most
other person. For after having lis- then available, and one thing is cer- unexpected constructions. And in
tened to my problems patiently, he tain: we cannot deny the couraage those days many a .clever program-
agreed that up till that moment there of the groups that decided to try to mer derived an immense intellectual
was not much of a programming build such a fantastic piece of equip- satisfaction from the cunning tricks
discipline, but then he went on to ment. For fantastic pieces of equip- by means of which he contrived to
explain quietly that automatic com- ment they were: in retrospect one squeeze the impossible into the con-
puters were here to stay, that we can only wonder that those first ma- straints of his equipment.
were just at the beginning and could chines worked at all, at least some- Two opinions about program-
not I be one of the persons called times. The overwhelming problem ruing date from those days. I men-
to make programming a respectable was to get and keep the machine in tion them now; I shall return to
discipline in the years to come? This working order. The preoccupation them later. The one opinion was that
was a turning point in my life and with the physical aspects of auto- a really competent p r o g r a m m e r
i completed my study of physics matic computing is still reflected in should be puzzle-minded and very
formally as quickly as I could. One the narncs of the older scientific so- fond of clever tricks; the other opin-
moral of the above story is, of cieties in the field, such as the Asso- ion was that programming was noth-
course, that we must be very careful ciation for Computing Machinery or ing more than optimizing the effi-
when we give advice to younger the British Computer Society, namcs ciency of the computational process,
people: sometimes they follow it[ in which explicit reference is made in one direction or the other.
Two years later, in 1957, I mar- to the physical equipment. The latter opinion was the result
ried, and Dutch marriage rites re- What about the poor program- of the frequent circumstance that,
quire you to state your profession mer? Well, to tell the honest truth, indeed, the awfllable equipment was
and I stated that i was a program- he was hardly noticed. For one thing, a painfully pinching shoe, and in
mer. But the municipal authorities the first machines were so bulky that those clays one often encountered
of the town of Amsterdam did not you could hardly move them and tbe naive expectation that, once more
accept it on the grounds that there besides that, they required such ex- powerful machines were available,
was no such profession. An.d, be- tensive maintenance that it was quite programming would no longer be a
lieve it or not, but under the head- natural that the place where people problem, for then the struggle to
ing "profession" my marriage record tried to use the machine was the push the machine to its limits would
shows the ridiculous entry "theo- same laboratory where the machine no longer be necessary and that was
retical physicist"! had been developed. Secondly, the all that p r o g r a m m i n g was about,
So much for the slowness with programmer's somewhat invisible wasn't it? But in the next decades
which l saw the programming pro- work was without any glamour: you something completely different hap-
fession emerge in my own country. could show the machine to visitors pened: more powerful machines be-
Since then 1 have seen more of the and that was several orders of mag- came available, not just an order
world, and it is my general impres- nitude more spectacular than some of magnitude more powerful, even
sion that in other countries, apart sheets of coding. But most important several orders of magnitude more
from a possibIe shift of dates, the of all, the programmer himself had powerful. But instead of finding our- ~i!i!~II
growth pattern has been very much a very modest view of his own work: selves in a state of eternal bliss with i~Ii
the same. his work derived all its significance all programming problems solved,
Let me try to capture the situa- from the existence of that wonderful we found ourselves up to our necks
tion in those old days in a little bit machine. Because that was a unique in the software crisis! How come?
more detail, in the hope of getting machine, he knew only too well that There is a minor cause: in one
a better understanding of the situa- his programs had only local signifi- or two respects modern machinery

:860 Communications October 1972 .


of Volume 15
the ACM Number 10

• . . . . . . . . . . . . . . .
is basically more difficult to handle trouble with m i n o r prophets, of design cannot have been that bad.
than the old machinery. Firstly, we course,, is d:n.~t it is only /live years But upon closer inspection, that line
have got the ~/"o ir~terrupts, o c c u r - later that you really know that they of defense has the same convincing
ring at unpredictable and irreproduc- had been right. strength as the argument that cig-
ible m o m e n t s ; compared with the old Then° in the mid sixties some- arette smoking must be healthy be-
sequential machine that pretended thit~.g terdb!e happened: the com- cause so many people do it.
to be a fully deterministic automaton, puters of Lilt so-called third genera- It is in this connection that I
this has been a dramatic change, don made their appearance. The regret that it is not c u s t o n l a r y for
and many a systems programmer's official literature tells us that their scientific journals in the comp~ting
grey hair bears witness to ~he fact price/performance ratio has been area to publish reviews of newly an-
that we should not talk lightly about one of the major design ob cctives. nounced computers in much the same
the logical problems created by that But if you take as "performance" way as we review scientific publica-
feature. Secondly, we have got ma- the duty cycle of the machine's vari- tions: to review machines would be
chines e q u i p p e d with multilevel ous components, little will prevent at least as important. And here I
stores, presenting us problems of you from ending up with a design have a confession to make: in the
mgmagement strategy that, in spite in which the major part of your per- early sixties 1 wrote such a review
of the extensive literature cm the t!ormance goat is reached by internal with the intention of submitting it
subject, still rcmaita rather elusive. housekeeping activities of doubtful to Communications, but in spite of
So much for the added complication necessity. And if your definition of d~e fact that the few colleagues to
due to structural changes of the price is the price to be paid for whom the text was sent for their aG
actual machines. the hardware, little will prevent you vice urged me to do so, I did not dare
But I called this a minor cause; from ending up with a design that to do it, fearing that the difficulties
tile major cause i s . . . that the ma- is terribly hard to program for: for either for myself or for the Editorial
chines have become several orders instance the order code might be Board would prove to be too great.
of' magnitude more powerful! To such as to enforce, either upon the This suppression was an act of cow-
p u t it quite bluntly: as tong as there programmer or upon the system, ardiec on my side for which t blame
were no machines, programming was early binding decisions presenting myself more and more. The di:Ncul-
no problem at all; when we had a conflicts that really cannot be re- ties I foresaw were a consequence of
few weak computers, programmi~lg solved. And to a large extent these the absence of generally accepted
became a mild problem, and now unpleasant possibilities seem to have criteria, and although I was con-
we have gigantic cornputers, pro- become reality. vinced of the validity of the criteria
gramming has become an equally When these machines were an- I had chosen to apply, I feared that
gigantic problem. In tMs sense the nounced and their functional speci- my review wouhI be refused or dis-
electronic industry has not solved a fications became known, many c a r d e d as " a m a t t e r of p e r s o n a l
single problem, it has only created among us must have become quite taste." I still think that such reviews
them--it has created the problem of miserable; at least I was. It was would be extremely useful and i am
using its products. To put it in an- only reasonable to expect that such longing to see them appear, for their
other way: as the power of available machines would flood the comput- accepted appearance would be a
machines grew by a factor of more ing community, and it was therefore sure sign of maturity of the com-
than a thousand, society's ambition all the more important that their de- puting community.
il/~i(~iii%1~(
~
to apply these machines grew in pro- sign should be as sound as possible. The reason that I have paid the
portion, and it was the poor pro- But the design embodied such seri- above attention to the hardware scene !? ~i!ii!)ii!(~~
/ ~~i~,~,,~ ,

grammer who found his job in this ous flaws that I felt that with a is because I have the feeling that
exploded field of tension between single stroke the progress of com- one of the most important aspects
ends and means. The increased power puting science had been retarded by of any computing tool is its influence
of the hardware, together with the at l e n t ten years; it was then that on the thinking habits of those who i}!i!ii!;ii~!i~/i~;!:
perhaps even more dramatic increase I had the blackest week in the whole try to use it, and because I have
in its reliability, made solutions fea- of my p~o.fessional life. Perhaps the reasons to believe that that influence
sible that the programmer had not most saddening thing now is that, is many times stronger than is com-
dared to dream about a few years even filer all those years of frustrat- monly assumed, Let us now switch
before. And now, a few years later, ing experience, still so many people o u r attention to the software scene.
he had to dream about them and, honestly beEeve that some law of Here the diversity has been so
even worse, he had to transform natme tells us that machines have large that I must confine myself to
s u c h dreams into reality[ Is it a to b:t that way. They silence their a few stepping stones. I am painfully
wonder that we found ourselves in douk;s by observing how many of aware of the arbitrariness of my
~ii:,~ii)!i~~!~tii~
a software crisis? No, certainly not, these machines have been sold, and choice, and I beg you not to draw
and as you may guess, it was even derive from that observation the false any conclusions with regard to my i~i!~!~i!i~i!i~i),il
predicted well in advance; but the sense of security that, after all, the appreciation of the many efforts that ~i/~' !~!!%
~
861 Communications O c t o b e r 1972
of V o l u m e 15
the A C M N u m b e r 10

4j
wilt have to remain unmentioned. grammers to our past mistakes. tected trademark, to lend glory to
hi the beg>lining there was the pray daily that more of my fellow- a number of sometimes haldly re-
},;Dssc in Cambridge, Engtimd, and programmers may find the means of lated younger projects is a some.
t think it quite inlpressive that right freeing themselves f r o m the curse of what shocking compliment to ALooL's
froth the start the notion of a sub- compatibility. statacling. The strength of ~Nir as a
routine library played a central role The third project ~ would not defining device is responsible for
in the design of that machine and like to leave unmentioned is Lisp, what ~ regard as one of the Weak.
of the way in which it should be a fascinating enterprise of a con> nesses of the language: an over-
used. It is now nearly 25 years later pletely cliffercnt nature. With a few elaborate and not to(> systematic
and the computing scene has changed very basic principles at its founda- syntax could now be crammed ittto
dramatically, but the notion of basic tion, it has shown a remarkable sta- the confines of very few pages. With
software is still with us, and the bility. Besides that, L~sp has been a device as powerful as BNF, the
notion of the closed subroutine is the carrier for a considerable nun> Report on the Algorithmic Lan-
still one of the key concepts in pro- bcr of, in a sense, our rnost so- guage At.eel. 60 should have been
gramming. We should recognize the phisticated c o m p u t e r applications. much shorter. Besides that, I am
closed subroutine as one of the great- I,Isp has jokingly been described as getting very doubtful about AI.GOl.
cst software il,vcntions; it has sur- "the most intelligent way to misuse 60% parameter mechanism: it al-
vivcd three generations of computers a computer." t think that description lows the prograrnmcr so much con>
and it will survive a few more, bc- a great compliment because it trans- binatorial freedom that its conlident
cause it caters for the implementa- mits the full flavor of liberation: it use requhTes a strong discipline from
tion of one of our basic patterns of hits assisted a number of our most the programmer. Besides being ex-
abstraction. Regrettably enough, its gifted fellow humans in thinking pensive to implenaent, it seems dan-
importance has been underestimated previously impossible thoughts. gerous to use.
in the design of the third generation The fourth project to be men- Finally, although the subject is
computers, in which the great nurn- tioned is AI.C;OL60. While up to the not a pleasant oilo, t must nlention
her of explicitly named registers of present clay FORTRAN programmers PL/t, a progranlming hmguage for
the arithrnetic unit implies a large still tend to understand their pro- which the dctining documentation is
overhead on the subroutine mecha- gramming language in terms of the of a frightening size and complexity.
~lism. But even that did not kill the specific i m p l e m e n t a t i o n they are [)sing PL/~ mast be like flying a
concept of the subroutine, and we working with-hence the prevalence piano with 7,000 buttons, switches.
can only pray that the mutation of octal or hexadecimal d u m p s - and handles to manipulate in the
won't prove to be hereditary. while the definition of l.isp is still cockpit. I absolutely fail to see how
The second major development a curious mixture of what the lan- we can keep our growing programs
on the software scene that I would guage means and how the mecha- firmly within our intellectual grip
like to mention is the birth of nism works, the famous Report on when by its sheer baroqueness the
FO~WaAN. At that time this was a the Algorithmic Language ALGOL 60 p r o g r a m m i n g l a n g u a g e - o u r basic
project of great temerity, and the is the fruit of a genuine effort to tool, mincl y o u ! - a l r e a d y escapes
people responsible for it deserve our carry abstraction a vital step further our intellectual control. And if I
great admiration. It would be abso- and to define a programming lan- have to describe the influence eL/l
lutely unfair to blame them for short- guage in an implementation-inde- can have on its users, the closest
comings that only became apparent pendent way. One could argue that metaphor that comes to my mind
after a decade or so of extensive in this respect its authors have been is that of a drug. I remember
usage: groups with a successful look- so successful that they have created from a symposium on higher level
ahead of ten years are quite rare! serious doubts as to whether it could programming languages a lecture
tn retrospect we must rate FORTRAN be implemented at all:! The report given in defense of eL/I by a man
~S at SUCCessful coding technique, gloriously demonstrated the power of who described himself as one of its
but with very few effective aids to the formal method BNF, now fairly devoted users. But within a one-hour
conception, aids which are now so known as Backus-Naur-Form, and lecture in praise of eL/L he man-
urgently needed that time has come the power of carefully phrased Eng- aged to ask for the addition of about
t o consider it out of date. The sooner lish, at least when used by some- 50 new "features," little supposing
we can forget that FORTRAN ever ex- one as brilliant as Peter Naut. I that the main source of his problems
isted, the better, for as a vehicle of think that it is fair to say that only could very well be that it contained
thought it is no longer adequate: i.t very few documents as short as this already far too many "features."
wastes our brainpower, and it is too have had an equally profound in- The speaker displayed all the de-
risky and therefore too expensive to fluence on the computing commu- pressing symptoms of addiction, re-
~ilse. FORTRAN'S tragic fate has been nity. The ease with which in later duced as he was to the state of
its wide acceptance, mentally chain- years the names ALGOL and ALGOL- mental stagnation in which he could
ing thousands and thousands of pro- like have been used, as an unpro- only ask for more, more, more . . . .
~62 Communications October 1972
of Volume 15
the ACM Number 10
When VOIZTRAN has been called an cha~?ge will take place must seem and society more or less accepts
i~fa~ltile disorder, full >*JI, with negligible. But we all know that that. But hardware manufacturers
its growth characteristics of a dan- sometimes revolutions do take place! tell us that in the next decade hard-
gerous t t . t m o r , c o u l d t u r n oult t o be And what are tlle chances for this ware prices can be expected to drop
a fataI disease. one? with a factor of ten. If software de-
So much for the past. But there There seem to be three major velopment were to continue to be
is no point in making mistakes un- coHditions that must be fulfilled. The the same c l u m s y and expensive
less thereafter we are able to learn world at large must recognize the process as it is now, things would
t
front them. As a matter of fact, I need for the change; secondly, the get completely out of balance. You
think that we have learned so much economic need for it must be suf- cannot expect society to accept this,
that within a few years program- ficiently strong; and, thirdly, the and therefore we ~t,st learn to pro-
ruing can be a~? activity vastly dif- change must be technically feasible. gram an order of magnitude more
terent from what it has been up Let me discuss these three conditions effectively. T o put it in another way:
tilt now, so dilt'erent that we had in the above order. as long as machines were the largest
better p r e p a r e o u r s e l v e s for the With respect to the recognition item on the budget, the program-
shock. I.et me sketch for you one of of Ihe need for greater reliabilii:y of ruing profession could get alway with
the possible futures. At first sight, software, I expect no disagreement its clumsy techniques; but that um-
this vision of programming in per- anymore. Only a few years ago this brella will fold very rapidly. In short,
haps already tile near future may was different: to talk about a soft- also our second condition seems to
strike you as utterly fantastic. Let ware crisis was blasphemy. The turn- be satisfied.
me therefore also .add the considera- ing point was tile Conference on And now the third condition: is
tions that might lead one to the con- Software Engineering in Garmisch, it t e c h n i c a l l y feasible? I think it
clusion that this vision could be a October 1968, a conference that might be, and I shall give you six ar-
very real possibility. created a sensation as there occurred guments ill support of that opinion.
;i~!i~I~
ii
Tile vision is that, well before the first open admission of the soft- A study of program structure
the seventies have run to comple- ware crisis. And by now it is gen- has revealed that p r o g r a m s - e v e n al-
tion, we shall be able to design and erally recognized that the design of ternative programs for the same task
implement the kind of systems that any large sophisticated system is go- and with the same mathematical con-
are now straining our programming ing to be a very difficult job, and t e n t - c a n differ tremendously in their
ability at the expense of only a few whenever one meets people respon- intellectual manageability. A num-
percent in man-years of what they sine for such undertakings, one finds ber of rules have been discovered, ill!~!ii
~;i

cost us now, and that besides that, them very much concerned about violation of which will either seri-
these systems will be virtually free of the reliability issue, and rightly so. ously impair or totally destroy the
bugs. These two improvements go In short, our first condition seems intellectual manageability of the pro-
hand in hand. In the latter respect to be satisfied. gram. These rules are of two kinds.
N o w for the e c o n o m i c need. i:~i~:!~i~
software seems to be different from Those of the first kind are easily
many other products, where as a rule Nowadays one often encounters the i m p o s e d m e c h a n i c a l l y , viz. by a
a higher quality implies a higher opinion that in the sixties program- suitably chosen programming lan-
price. Those who want really reli- ruing has been an overpaid profes- guage. Examples are the exclusion
able software will discover that they sion, and that in the coming years of gore-statements and of procedures
must find means of avoiding the programmer salaries may be expected with m o r e than one output para-
majority of bugs to start with, and to go down. Usually this opinion is meter. For those of the second kind,
as a result the programming process expressed in connection with the re- I at l e a s t - b u t that may be due to
will become cheaper. If you want cession, but it could be a symptom lack of competence on my s i d e -
more effective programmers, you will of something different and quite see no way of imposing them m e -
discover that they should not waste healthy, viz. that perhaps the pro- chanically, as it seems to need some
their time d e b u g g i n g - t h e y should grammers of the past decade have sort of automatic t h e o r e m prover
not introduce the bugs to start with. not done so good a job as they for which I have no existence proof.
In other words, both goals point to should have done. Society is getting Therefore, for the time being and
the same change. dissatisfied with the performance of perhaps forever, the rules of the
Such a drastic change in such programmers and of their products. s e c o n d k i n d present themselves as
a short period of time would be a But there is another factor of m u c h elements of discipline required from
revolution, and to all persons that greater weight. In the present situa- the programmer. Some of the rules
base their expectations for the future tion it is quite usual that for a I have in mind are so clear that they
on smooth extrapolation of the re- specific system, the price to be paid can be taught and that there never
cent p a s t - a p p e a l i n g to some unwrit.- for the development of the software n e e d s to be an a r g u m e n t as to
ten laws of sociaI and cultural in- is of the same order of magnitude whether a given program violates
ertia-the chance :that this drastic as the price of the hardware needed, them or not. Examples are the re-

863 Communications October 1972


of Volume 15
the ACM Number 10
!

quirements that no loop should be grow .hand in hand. Argument three of patterns of abstraction that play
written down without providing a is essentially based on the following a vital role in the whole process
!
i
proof for termination or without observation if one first asks oneself of composing programs. Enough is
stating the relation whose invariance what the str~cture of a convincing known about these patterns of ab-
will not be destroyed by the execu.- proof would be and, having found straction that you could devote a
tion of the repeatable statement, this, then constucts a program satis- tecture to each of them. What the
I now suggest that we confine fying this proof's requirernents, then familiarity and conscious knowledge
ourselves to the design and imple- these correctness concerns turn out of these patterns of abstraeti<m irr>
mentation of intellectually manage- to be a very effective heuristic guid.. ply dawned upon me when I realized
able programs. If someone fears that ance. By definition this approach is that, had they been common knowl--
this restriction is so severe that we only applicable when we restrict our- edge 15 years ago, the step from
cannot live with it, I can reassure selves to intellectually manageable ~NF to syntax-directed compilers, for
him: the class of intellectually man- programs, but it provides us with instance, could have taken a few
ageable program.s is still sufficiently effective means for finding a satis- minutes instead of a few years. There-
rich to contain many very realistic factory one among these. fore I prescott our recent knowledge
programs for any problem capable Argument four has to do with of vital abstraction patterns as the
of algorithmic solution, We must the way in which the amount of in- fourth argument.
not forget that it is ~ot our business tellectual effort needed to design a Now for the fifth argument. It
to make programs; it is our busmess program depends on the program has to do with the b~fluence of the
to design classes of computations length. It has been suggested that tool we are trying to use upon our own
that will display a desired behavior. there is some law of nature telling us thinking habits. I observe a cultural
The suggestion of confining ourselves that the amount of intellectual effort tradition, which in all probability
to intellectually manageable programs needed grows with the square of has its roots in the Renaissance, to
is the basis for the first two of my program length. But, thank good- ignore this influence, to regard the
announced six arguments. ness, no one has been able to prove human mind as the supreme and
Argument one is that, as the this law, And this is because it need autonomous master of its artifacts.
programmer only needs to consider not be true. We all know that thc But if I start to analyze the thinking
intellectually manageable programs, only mental tool by means of which habits of myself and of my fel-
the alternatives he is choosing from a very finite piece of reasoning can low human beings, I come, whether
are much, much easier to cope with. cover a myriad of cases is called I like it or not, to a completely dif-
Argument two is that, as soon "abstraction"; as a result the effec- ferent conclusion, wig. that the tools
as we have decided to restrict our- tive exploitation of his powers of we are trying to use and the lan-
selves to the subset of the intellectu- abstraction must be regarded as one guage or notation we are using to
ally manageable programs, we have of the most vital activities of a express or record our thoughts arc
achieved, once and for all, a drastic competent programmer. In this con- the major factors determining what
reduction of the solution space to nection it might be worthwhile to we can think or express at all! The
be considered. And this argument is point out that the purpose of ab- analysis of the influence that pro-
distinct from argument one. stracting is not to be vague, but to gramming languages have on the
Argument three is based on the create a new semantic level in which thinking habits of their users, and
constructive approach to the prob- one can be absolutely precise. Of the recognition that, by now, brain-
lena of program correctness. Today course I have tried to find a funda- power is by far our scarcest re-
a usual technique is to make a pro- mental cause that would prevent our source, these together give us a new
gram and then to test it. But: pro- abstraction mechanisms from being collection of yardsticks for compar-
gram testing can be a very effective sufficiently effective. But no matter ing the relative merits of various
way to show the presence of bugs, how hard I tried, I did not find such programming languages. The com-
but it is hopelessly inadequate for a cause. As a result I tend to the petent programmer is fully aware of
showing their absence. The only ef- assumption--up till now not disproved the strictly limited size of his own
fective way to raise the confidence by experience-that by suitable ap- skull; therefore he approaches the
level of a program significantly is plication of our powers of abstrac- programming task in full humility,
to give a convincing proof of its cor- tion, the intellectual effort required and among other things he avoids
rectness. But one should not first to conceive or to understand a pro- clever tricks like the plague. In the
make the program and then prove gram need not grow more than pro- case of a well-known conversational
its correctness, because then the re- portional to program length. A by- programming language I have been
quirement of providing the proof product of these investigations may told from various sides that as soon
would only increase the poor pro- be of much greater practical signifi- as a programming community is
grammer's burden. On the con- cance, and is, in fact, the basis of equipped with a terminal for it, a
trary: the programmer should let my fourth argument. The by-product specific phenomenon occurs that even
c o r r e c t n e s s p r o o f and p r o g r a m was the identification of a number has a well-established name: it is

864 Communications October 1972


of Volume 15
the A C M Number t0
called "the one-liners." ;it takes o~e the structure of what we write down erties of the order code will know
of two different forms: one program- all abstractions needed to cope con- a simple example of the kind of
me* plaices a one-line program o n ceptually whh the complexity of what things I have in mind. The wider
the desk of another and Either he we are designing. So much for tile applicability of nicely factored solu-
proudly telis what it does and adds greater adequacy of our future tools, tions is my sixth and last argument
Ihe question, "Can you code this in which was the basis of the fifth for the technical feasibility of the
less s y m b o ! s ? " - a s if this were of argument. revolution that might take place in
,sly conceptual rctcvance[--or he just As an aside I would like to in- the current ciecacle,
says, "'Guess what it does!" From sert a warning to those who identify In principle I leave it to you to
!ii
this observation we must conclude the difficulty of the programming decide for yourself how nmch weight
that this language as a tool is an task with the struggle against the you are going to give to my con-
open invitation for clever tricks; and inadequacies of our current tools, siderations, knowing only too well
while exactly this may be the ex- because they might conclude that, that i can force no one else to share
planation for some of its appeal, once our tools will be nmch more my beliefs. As in each serious revolu-
i'ic. to those who like to show how adequate, programming will no longer tion, it will provoke violent opposi-
clever they are, 1 am sorry, but be a problem. Programming will re- tion and one can ask oneself where
I must regard this as one of the main very difficult, because once we to e x p e c t tile c o n s e r v a t i v e forces <
most ctarnning things that can be have freed ourselves from tile cir- trying to counteract such a develop-
said a b o u t a p r o g r a m m i n g lan- cumstantial cumbersomeness, we will ment. I don't expect them primarily
guage. Another lesson we should find ourselves free to tackIe the in big business, not even in the com-
have learned from the recent past is probIems that are now well beyond puter business; I expect them rather
that the development of "richer" or our programming capacity. in the educational institutions that
' m o r e powerful" prograrnnling hm- You can quarrel with my sixth provide today's training and in those
guages was a mistake in the sense argument, for it is not so easy to conservative groups of computer ~)~~,i~i
that these b a r o q u e monstrosities, collect experimental evidence for its users that think their old programs
these conglomerations of idiosyn- support, a fact that will not prevent so important that they don't think it y
crasies, are really unmanageable, both me from believing in its validity. Up worthwhile to rewrite and improve ! ii/i~
h
mechanically and mentally. I see a till now I have not mentioned the them. In this connection it is sad
great future :for very systematic and word "hierarchy," but I think that to observe that on many a university
very modest programming languages. it is fair to say that this is a key campus the choice of the central
When I say "modest," I mean that,
for instance, not only ALGOL 60'S
"for clause," but even FORTRAN'S"DO
concept for all systems embodying a
nicely factored solution. 1 could ever,
go one step further and make an
computing facility has too often been
deternfined by the demands of a few
estabIished but expensive applica-
all !~

i!!
loop" may find themselves thrown article of faith out of it, >'iz. that tions with a disregarcl of the ques-
out as being too baroque. I have run the only problems we can really tion, how many thousands of "small
a little programming experiment with
really experienced volunteers, but
something quite unintended and quite
solve in a satisfactory manner are
those that finally admit a nicely fac-
users" who are willing to write their
own programs are going to suffer
i ii
tored solution. At first sight this f r o m this choice. T o o often, for
unexpected turned up. None of my view of human limitations may strike instance, high-energy physics seems
volunteers found the obvious and you as a rather" depressing view of to have blackmailed the scientific
most elegant solution. Upon closer our predicament, but I don't feel it community with the price of its re-
analysis this turned out to have a that way. On the contrary, the best maining experimental equipment.
common source: their notion of rep- way to learn to live with our limita- The easiest answer, of course, is a
etition was so tightly connected to tions is to know them. By the time fiat denial of the technical feasibility,
the idea of' an associated controlled that we are sufficiently modest to try but I am afraid that you need pretty
variable to be stepped up, that they factored solutions only, because the strong arguments for that. No reas-
were mentally blocked from seeing other efforts escape our intellectual surance, alas, can be obtained from
the obvious. Their solutions were grip, we shall do our utmost to avoid the remark that the intellectual ceil-
less efficient, needlessly hard to un- all those interfaces impairing our abil- ing of today's average programmer
derstand, and it took them a very ity to factor tile system in a helpful will prevent the revolution from tak-
long time to find them. It was a re- way. A n d I can not but expect that ing place: with others programming
vealing, but also shocking experi- this will repeatedly lead to the dis- so much more effectively, he is liable
ence for me. Finally, in one respect covery that an initially untractable to be edged out of the picture any-
one hopes that tomorrow's program- problem can be factored after all. way.
ming languages will differ greatly Anyone who has seen how the ma- There ,nay also be political im-
from what we are used to now: to jority of the troubles of the compil- pediments. Even if we know how
a much greater extent than hitherto ing phase called "code generation" to educate tomorrow's professional
they should invite us to reflect in can be tracked down to funny prop- programmer, it is not certain that .li~i!i!;!!;/.
~; !!i}{~!)ii!
865 Communications Octobei 1972
of Volume 1.5
the ACM Number 10
the society we are living in will allow computation time. t do not know
us to do so. The f i r s t effect of teach- of any other technology covering a
ing a m e t h o d o l o g y - r a t h e r thm~ dis- ratio of 1 0 " or more: the computer,
seminating k n o w l e d g e - i s that of en- by virtue of its fantastic speed, seems
hancing tlne capacities of the already to be the lirst to provide us with an
capable, thus magnifyi~/g the differ- environnlcnt where highly hierarch-
once in intelligence, hl a society in ical artifacts arc both possibte and
which the educational system is used ~lecessary. This challenge, yiz. the
as an instrumcrtt for the establish- c o n f r o n t a t i o n with the p r o g r a m -
ment of a homogeuized cnkure, in ruing task, is so unique chat this
which the cream is prevented from novel experience can teach as a lot
rising to the top the education of about ourselves, tt should deepen
competent p r o g r a m m e r s coukt be our understanding of the processes
politically unpalatable. of design and creation; it should give
Let m c conclude. Automatic com- us better control over the task of
puters have now been with us for organizing ore" thoughts. If it did
a quarter of a century. They have not do so, to my taste we should
had a great impact on our society not deserve the computer at all[
hi their capacity of tools, but in that It has already taught us a few
capacity their influence will be but lessons, and the one I have chosen
a ripple on the sttrface of our cul- to stress in this talk is the %llow-
ture compared with the much more ing. We shall do a much better pro-
profound intk~ence they wilt have in g r a m m i n g j o b , p r o v i c t e d t h a t we
their capacity of intdlectual chal- approach the task with a full appre-
lenge which will be without precc- ciation of its tremendous diflicuIty,
delqt in the ctt/tural history of man- provided that we stick to modest
kind. Hierarchical systems seem to and elegant programming languages,
have the property that something provided that we respect the intrhlsic
considered as an undivided entity on limitations of the human rnind and
one level is considered as a con> approach the task as Very H u m b b
posito object o n thc next lOWEr level Programmers.
of greater detail; ;.is a result the
natural grain of' space or time that
is applicable at each level decreases
by an order of magnitude when we
shift out" attention fronl one level to
the next lower one. We mlderstand
walls in terms of bricks, bricks in
terms of crystals, crystals in terms
of molecules, etc. As a result the
number of levels that can be distin-
guished meaningfully in a hierarchical
system is kind of proportional to the
logarithm of the ratio between the
largest and the smallest grain, and
therefore, unless this ratio is very
large, we cannot expect many levels.
In computer programming our basic
building block lms an associated time
grain of less than a microsecond,
but our program m a y take hours of
[References to the following foot- gramming, control, CACM 8 (Sept. 1965),
notes are found in the extract from the 569; The structure of the "THE" multi-
Turing Award citation on page 859.] programming system, CACM l 1 (May,
aSome meditations on advanced program- 1968), 341-346.
ruing, Proceedings of the IFIP Congress aGo to statement considered harmful,
1962, 535-538; Programming considered CACM 11 (Mar. 1968), 147-148.
as a human activity, Proceedings of the *A short introduction to the art of
IFIP Congress 1965, 213-217. computer programming, Technische Hoge-
~Solution of a problem in concurrent pro- school, Eindhoven, 1971.

866 Communications October 1972


of Volume 15
the ACM Number 10

You might also like