<<

7

i972 ACM Tearing Award Lee~ture glossary can possibly indicate. The sophical addresses at ~>~p,~ his aL tatio~ read 6y M~. Mcllroy, chair-, precious gift that this Turing Award ready classic papers on cooperating e,lan o/l/~e A CM Tz~rit,g A ward Cot~> ack,~owledges is Dijkstra's slyle: his sequential processes, ~ and his mem~ *nitgee, at tt~e preset~taKot, o/ tkks' approach to programming as a high, orable indictment of the go-to state- lect~re <~t~ Au,g,~c,t 14, t972, at the intellectual challenge; his eloquent rnent/An influential series of letters A CM A ~m~at ('o~jere~ce in Bos'ton.] insistence and practical demonstra- by Dijkstra have recently surfaced as The workiug vocabulary of pro- tion that programs should be corn-. a potished monograph on the art of grammers everywhere is studded with posed correc@, not just debugged composing programs/" words originated or forcefully prom- into correctness; and his illmninating We have come to value good pro- )/ ulgated by E,W. Dijkstra-display0 perception of problems at the foun- grams in much the same way as we deadly embrace, , 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 grammiag is more pervasive than any are especially to be noted his philo- than useful, stands E.W. Dijkstra.

The Humble Programmer

by Edsger W. Dijkstra ~,~ ~i~!il~

s '(;:ziii:i!!i; 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 simukaneously, and as I found ~he first spring morning of 1952, and as two activities harder and harder ,to far as I have been able 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. In retrospect the mnst and become a real respectable theo- amazing thing is the slowness with retica~ physicist, or to carry my study which, at least in my part of the of physics ~o a formal completion world, the programming profession only, with a minimum of effort, and emmlged, a slowness which is now to become.,,, yes what? A pro- hard to beiieve, But I am grateful for grammer? But was ~ha~ a respect- ) ~.!;i!!:iii~ 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 % Copyright © I972, Association for Compu*ieg Machinery, Ir~, Generaf per~ some three years~ I had a discussion missio~ ~o ~xep~JbF.sh, bus ~mt for profit, with van Wijngaarden, who was then all or part of ~his maa~qa/ is groined, my boss at the Mathematical Centre provided ~hat referenda: is made ~o this publica~km, to [~s date of ~ssue, and ~o in Amsterdam-a discussion for the fact %a~ reprinti~g 1~rlvileges were which 1 shall remain grateR~l ~o him gray,ted by ~rmi:ssioa of the Association! %r Compu@~g Mad@~ery. as toeg as l live, The point was that /2J~.~ Foo[no~.e8a~'e o~'t page 866~

859 Corn ~a~1~ i¢~a !iiorls ©ctob~r ~972 of Val~m~e 15 the ACM N~amH~r t0 port it as an intellectually respectable don today. White we pursue our cance, and also because it was pat- discipline? I remember quke vividly analysis, we shall see how many endy obvious that this machine would how I envied my hardware cob common misunderstandings about have a limited lifetime, he knew ~ha, leagues, who, when asked about their the true nmure of the progranmfing very Httb of his work would have professional competence, coukt at task ca~ bc traced back to that now a lasti~G value. Finally, there i~ least point out that they knew every- distartt past. yet am~thcr circumstance that had u. thing about vacuum tubes, amplifiers The first automatic electronic profound influence ou the program- and the rest, whereas I fek that. wcrc ali unique, singie- reef's attitude toward his week: on when faced wida that questio~, I copy' machines and @e~ were all to the one hand, besides being unre- would stand empty-handed, Full of be found in an e~wiromnent wkh tiabk', his machine was usually too misgRings t knocked on ',an %i.jn- the exciting fla~or of an experimental slow and its memory was usually gaarden's office door, asking him laboratory. Once @e ',ision of the too small, i.e. he was faced with whether t could speak to him for a automatic was @ere. its a pinching shoe, whib on the o@er moment; when I left his office a realizado~ was a tremendous chair hand its usually somewhat queer number of hours later, I was an- lunge to the cbctronic technology order code would cater for the most other person. For after having Hs- then a,,ailable, and one thing is cur- unexpected constructions. And in tuned to my problems patieud3, he tam: ',~e cannot deny the courage @ose clays many a clever program- agreed that up till tiaat moment there of the groups that decided to t O to met derived an immense hucltectual was not much of a programming build such a fantastic piece of equip- satisfaction from the cunning tricks disciplin< but then he went on to taunt. For fantastic pieces of equip- by means of which he contriveci to explain quiedy @at automatic com- ment they were: in rdrospect one squeeze the impossible into the cou- 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 overwhehning probbm ruing date from those days. t men- to make programming a respectable was to get and keep the machine in tion them now; [ 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 programmer I completed my study of physics matic is still reflected in should be puzzle-minded and very formally as quickly as I could. One the names of the older scientific so- fond of clever tricks; the other opin- moral of the above story is, of cieties in ~he field, such as the Asso- ion was @at programming was noth- course, that we must be very earefut ciation for Computing Machinery or ing more than optimizin~,.~~ the effi- when we give advice ~o younger the British Computer Society, names cier~cy of the conputational 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 fled, 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 available equipment was and I stmed that I was a program- he was hardly noticed. For one thing, a painfully pinching shoe, and in mer. But. the municipal authorkies the firs~ machines were so bulky that those days one often encountered of @e town of Amsterdam did nor you could hardty move them and the naive expectation that, once more accept it on the grounds thus there besides that, they required such ex- powerful machines were available, was no such profession. And, 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 ~proflossion" my marriage record tried to use the machine was the push the machine to its limits would shows the ridiculous entry *{heo~ same Iaboratory where the machine no lor~ger he necessary and that was retical physicist"! had been devdoped. Secondly, the all that programming was abouL So much for the slowness with programmer's somewhat invisible was[ft it'? But in the next decades which I saw the programming pro- work was wid~out any glamour: you something completdy different hap- fession emerge in my own country. could show the machine ~o visitors pened: more powerful machines be- Since then I have seen more of the and tha~ was severai orders of map came available, not just an order world, and it is my genera1 impres- nitude more spectacular than some of magnitude more powerful, even sio~ that in other countries, apart sheets of coding. But most important several orders of magnitude more from a possible shift of dates, the of nil ~he programmer himself had powerful, But instead of finding our- grow@ pattern has been very much a very modest view of his own work: salves in a state of eternal bliss with the same. his work derived all its significance at1 programming problems solved, Let me try to capture the si~ua~ from the existence of ~hat wonderful we found ourselves up to our necks tion in those old days k~ a ti@e bit machine, Because that was a unique in the sohware crisis! How come? more detait, in the hope of getting machine~ he knew only {oo well that There is a minor cause: in one a better understar~diag of the siR~a.~ his programs had only local signifi- or two respects modern machinery

Con}m~.micatior~s October I972 off Volume ~5 1be ACM Nt~mber t0 !~/ ! iS hasicuIly more difficult to haI~dlc trouble with minor prophets° of design cannot have been that bad. than il~c old machirlery..Firsl:ty, wc course, is that it is only five years But upon closer inspection, dmt line h~ve got the I o h~cI~upts, o<:cur.- Inter that y~,m reaSy know that they of defense has the same convincing h i ii rin~.~ n{ unprcdic~abk. ;rod irr<.produc~. had bee~ right. strength as the argurnem that cig- it,to rnolucn~>: camp ~!'cd with the old "lhen, in the mid sixti,cs some-. arette smoking must be healthy be,- scq,teafiat m~chinc {hat preh:ndcd thing terrible happened: the coln-- cause so many peopb do i~. tO t?C ~ ft~tt'\ dCt<'FH}illis~iC al,l~oH~a.tou~ puters of the so~.caited third genera- It is ira this connection that I ~)1t, hA5 }~cctl i/ ~ruma!ic c:hm~ge, tion made their appearance. fhc regret that it is not customary for ',llld l!lilil} il ~}>tCH!~ pfogrg.ul]~l]cr's official /heraturc tells us that their' scientific journals in the computing gre} h~ir {...... , thin., i!~ spite in which thc .major part of your per- carty sixties I wrote such a review of ~hc extcnsive literature e te[h us dm~ machines have large d~a~ I must cow,fine myscK to such dreams into reality! Is i{ a to that way I'hey site~cc their a few steppMg sIo{aes, t am painfully wo~der that we found ourselves ir~ dout,s by observing how many of away<- of 4~e arbkrarmess of my a sohwarc crisis? No, certainly nob these machines have been sold, a~d choice and t beg you no~ to draw and as }ou may guess, it was even derive from ~hat observation the false any co+~ch+sioas wish ~egard to my predicted well in advauce:, bu~ d~e sense of scc{nity I:}mt~ after nil ~he appreciation of the maw efforts d:at

86t Od<£wr 1972 d Voh~me t 5. ~he ACM N~m~bel H} will have to remain unmentioned. ~rammers to our past mistakes I tooted trademark, to lend glory to In the beginning there was the pray daily that more of my fellow- a number of sometimes hardl,, re-,. EDSaC in Cambridge, England, and programmers may iind the means of Iatcd younger projects is a >,,use-. l think it quite impressive that right freeing thcmselxes from the curse of v, hat shocki ~g complimcm to A IXTK)I 'S from the start the notion of a sub- compatibility. standing. The strenglh of ~N~,' as a routine p/a)cd a central role The third project I would not deft{ring device is rcsponsible for in the design of that machine and like to leaxe unmentioned is ~sP, what I regard as one of the weak- of the way ia which it should be a fascinating emcrprise of a con> ~lesses of the languagc: a~ eve> used, It is now nearly 25 ,,cars later pJetely dilferent nature, \~ith a few elaborate and not too systematic and the computing scenic has changed very basic principles at its fotmda- symax could m~w bc crammed into dramatically, but the notion of basic ~ion, it has shown a remarkable sta- the routines of very few pages. With is still with us, and the bility. Besides that, Lisp has been a device as powerful as ~NF, the notion of the closed subromine is the carrier for a considerable num- Report on the Algorithmic I.,an- still one of the key concepts in pro- ber of, in a sense, our most so- guagc a~,GOL 60 should have been gramnfing. Vee should recognize the phisticated computer applications. much shorter. Besides that, t am closed subroutine as one of the great- {~sp has jokingly been described as getting very doubtful about AL(;OI. est software inventions; it has sur- "'the most intelligent way to misuse 60's parameter mechanism: it a/- vived three generations of computers a computer." I think d~at description lows the programmer so much con> and it will survive a few more, be- a great compliment because it trans- binatoriat freedom that its co~dident cause it caters for the impiementa- mits the full flavor of liberation: it use requires a strong discipline from tion of one of our basic patterns of has assisted a number of our most the programmer. Besides being ex- abstraction. Regrettably enough, its gifted fellow hurnans in thinking pensive to implement, it seems dan- importance has been underestimated previously impossible thoughts. gerous to use. in the design of ~he ~hird generation The fourth project to be men- Finally, although the subject is computers, in which the great nun> tioned is ALGOL 60. While up to the not a pleasant one, I must mention bet of explicitly named registers of present day programmers e~,/~, a for the arithmetic unit implies a targe still tend to understand their pro- which the defining documentation is overhead on the subroutine mecha- gramming language in terms of the of a frightening size and complexity. nism. But even that did not kill the specific implementation they are Using PL/~ must be like flying a concept of the subroutine and we working with--hence the prevalence plane with 7,000 buttons, switches, can only pray that the mutation of octal or hexadecimal dumps- and handles to manipulate in the won't prove to be hereditary. while the definition of LISP is still cockpit. ! 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 I7 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 FORTRAN. At that dine this was a the Algorithmic Language ALGOL 60 programming language-our basic project of great temerity, and the is the fruit of a genuine effort to tool, mind you!~atready escapes people responsible for it deserve our carry abstraction a vital step further our inteilecmal control. And if I great admiration. It. would be abso- and to define a programming lan- have to describe the influence PL/I 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 fare! serious doubts as to whether it could programming languages a lecture In retrospect we must rate FORTRAN be implemented at atl! "['he report given ia defense of PL/I by a man as a 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 ~NF, now fairly devoted users. But within a one&our conception, aids which are now so known as Backus-Naur-Form, and lecture in praise of eL/g, he man- urgently ~eeded that time has come the power of carefully phrased Eng- aged to ask for the addition of about to 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 Naur. 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 ig is no longer adequate: it 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 a~d therefore too expensive to fluence on the computing commu- pressing symptoms of addiction, re~ ~se. FOg'r~AN'S tragic fan has been nity. The ease with which i~~ 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 unpm~ orfly ask for more, more, more ....

862 Comrmtmica{{o~s October 1972 of Voh}me 15 ~'he A(~M Nt~mber 10 Whc~ F{)}{I}, of a dam sometinlcs revoh,tions tJo take place', tall us that i~ the next decade hard- gcrous tumor, could turn out t~ bc Ami wha{ are the chances for this ware prices can be expected to drop a fatal disease, on:e'? with a factor of ten. If software de- S{~ much for ihc past. But there There sccm to be three major velopmei]t wcrc to coflti~]t~e to be is no point in it~.aking mistakes um- conditions that must bc fulfilled. The the same clumsy arid expensive Icss thcrcaficr wc :.ire able ~o learn world at large lm~st recognize the process as it is ~low things would from d~cm, ,'\> a mat*or of fact, I need for ~}~e change; secondly, the get eornpJetety out of bahmce, You think that wc havc learacd so much ccom)mic riced for it must bc suL cannot expect sock'ty to accept this, that withi~ a few years program.-. ficicntty strong; and, thirdly, the and therefore we mu,sl learn to pro- ruing can be a,~ acdvity vastly dif- change must be technically feasible. glare a{] order of magrl]tudc more ferent from what it has been up I.et me discuss dqese three conditkms effectively, qo put it iz another way: till now, so different that we had in the above order. as king as machines were the targcst better prepare ourselves for the With respect to the recognition item o~ the budget, the program- shock, l.et mc sketch for you o,nc of of the riced for greater rcliabitky of ruing profcsskm could get away with the possible futures. At tirst sight. software, I expect no disagreement its clumsy techniques; but that um- this vxio,~ of programming in per- anymore. Only a few years ago this brella wilt fold very rapidty. In short, haps already the ~ear 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 smisfied. me therefore also add the considera- ing point was tile Corlference on And now the third condition: is tions that might lead one to the con-. in Garmisch, it technically feasible? I think it clasio~ that this vision could bc a October I968, a conference that mi,oht be, and [ shall give you six ar- very real possibility. created a sensation as there occurred guments in support of that opinion. The vision is that, well before the first open admission of the soft- A study of program structure the seventies have run to compb- ware crisis. And by now it is gen- has revealed that programs-even al- don, we shall be abtc to dcsigu and erally recognized that the design of ternative programs for the same task implement the kind of systems that any large sophisticated system ix go- and with the same mathematical con- are uow straining our programming ing to be a very difficult job, and tent--can 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, cost us now, and that besides that, them very much concerned about violation of which wilt either serf these systems wilt 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 condhion seems intellectual manageability of the pro- hm~d in hand. In the latter respect to be satisfied. gram. These rules are of two kinds. software seems to be different from Now for the economic need. Those of the first kind are easiiy many other products, where as a rule Nowadays one often encounters the imposed mechanically, viz, by a a higher quality implies a higher opinion that in *he sixties program- suitably chosen programming lan- price. "l"hose who want really rdi- miag has been an overpaid profes- guage. Exampbs are the exclusion able software witi 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 more ~han one output para- majority of bugs to start with, and to go down. Usuatly this opinion is meter. For those of the second kind, as a result the programming process expressed in connection with the re- 1 at least-but {hat may be due to wit[ becorne cheaper, If you want cession, but it could be a symptom lack of competence oa my side- more effective programn~ers, you will of something different and quite see no way of imposing them me- discover that they should not waste healthy, viz. that perhaps the pro- chanically, as it seems to need some their time -they should grammers of ~he past decade have sort of automatic theorem prover ~ot introduce the bugs to start with. no~ dons so good a job as they for which [ have no existence proof, In other words, both goals poim 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 p~egrammers and of their products, second kind present themselves as a short period of time would be a But there is another factor of much dements of discipline required from revolution, and ~o all persons that greater weight I~ the present situa- d~e programmer, Some of the ruses base their expectations for the future tion it is quite usual that for a I have irl 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 past-appealing to s~m~e unwrit~. for the devdopmeat of the software needs to be an arg~m~ent as to tea laws of social mid cultural in- is of the same order of mag~imde whether a Nven program vioiams ertia--the chm~ce that finis drastic as the price of {he hardware needed, them or rim, Examples are the re-

863 Octo~r 1972 of Volume 15 ~he ACM Number t0 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 d~e following a vital role in the whole process proof for termination or without observation. If one first asks oneself of composing programs. Enough is stating the reiation whose invariance what ~e structure of a convincing kno',xr~ about these patterns of ab- will not be des:royed by the execu- proof woutd bc am]. having found straction that you could de~ote a tion of the repeatabIe statemenu dfis, @cn coastucts a program satis- k'cturc to each el them. What the I now suggest @at ~e corifi~e fying dis proof's requirements, then famitkuity and conscious knowledge ourselves ~o @c design and imple- these correctness concerns turn out of these patterns of 'abstractio~l im- mentation of intelbctuatly manage- to be a very dfective heuristic guid- [qy dawned upon mc whc~ 1 rcatized abIe programs. If someone fears that ance. B} definition this approach is that. had they bccn common knowl- this restriction is so severe that we only appUcable when we restrict our- edge 15 years ago, the step from cannot live with it, I can reassure selves to intellectually manageable ~XF to s}ntax-dirccted compilers, for him: the class of intellectually man- programs, buI i~ provides us with instance, could havc taken a few ageable programs is still sufficiently effe<:'~he means for finding a satis~ minutes instead of a few 3 ems. There- rich ~o contain many very realistic factory one among these. fore I present our recent knowledge programs for any problem capabb Argument four has to do with of vital abstraction patterns as the of algorithmic solution, We must the way in which @c amount of in- fourth argumenu not forget that it is no," our business tellectual effort needed to design a Now {'or the fifth argument, tt to make programs; it is our ;business program depends on @e program has to do with the influence of the to design cIasses of computations lengtL tt has been suggested that tool we are trying to use upon our own that will disptay a desired behavior. there is some law of ~ature telling us thinking habits. I observe a cuhural The suggestion of confining ourselves that the amount of intellectual effort {radkion, which in all probability to intellectually manageabb 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- ignorc 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 @e this law. And this is because it need autonomous master of its artifacts, programmer only needs to consider not be true. We alt know ~hat the But if I start to analyze the thinking intellectually manageaNe programs, only mental tool by means of which habits of myself and of my feL the ahemadves he is choosing from a very tinite piece of reasoning can low human beings, I corne, 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 @at, as soon 'abstraction"; as a result the effec- ferent conclusiom ~,i~. that the tools as we have decided to restrict our- uve exploitation of his Fowers of we are trying ~o use and the lan- selves to the subset of the intdlectu- 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 are achieved, once and for all, a drastic competent programmer. In this con- the major factors determining what reduction of the solution space ~o nection it might be worthwhile to we can think or express at aIH The be considered. And t/his argument is point out tl~a~ ~he purpose of ab- analysis of the influence that pro- distinct from argument one. stracting is t~ot to be vague, but to grammmg languages have on the Argument three is based on the create a new semandc tevN 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- lem of program correctness, Today course t have tried ~o find a funda- power is by far our scarcest re- a usual technique is to make a pro- menta~ cause that wouki prevent our source, these together give us a new gram and then to test iL But: pro- abstraction mechanisms from being collection of yardsticks for compar- gram tesdng can be a very effective sufficiently egecdve, But no matter ing the relative merits of various way to show the presence of bug< how hard t tried, I did not find such programming languages. The com- but it is hopelessly inadequate for a cause, As a resuk 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 @e confidence by experience-that by sukabte 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, ~he intellectual effort required and arnong other things he avoids rectness. But one should nor first {o conceive or to understand a pro- clever tricks like the plague. In the make the program and then prove gram need not grow more ~han pro- case of a weHoknown conversational its correctness, because @,on @e re- portionaI ~o program length, A by~ programming language I have been quirement of providing the proof product of these investigaJons may told from various sides {hat as soon would only increase the poor pro.~ be of much grcmer practical signiG as a programming community is grammer% butdora Oa the con~ cance, and is, in facL the basis of equipped with a terminal for it, a traw: the programmer should Iet my fourth a

864 (/orf~ rrHtr~{gador~5 Ocl,ober 1972 of Voh~me 15 *the ACM N~.~mber H} called "the onoditrcrs~" it takes one the structure of what we write down erties of the orde~ code will know k/¢/ of two difl'crcnt forms: one progran3- all ab:4ractions needed to cope con- a simple example of the kSmd of t !t ~, mcr p!accs ;a oncdine program on ceptually with the complexity of what things I have in mind, The wider the desk <)f another at~d either bc we are designing. So much for the applicability of nicely factored soh~- proudly tclts what it does and adds greater adequacy of our future tools, tions is my sixth arid last argument the queMioi3, "'t';lll y~)tl code this i!] which was the basis of the fifth for the technical feasibility of the less syInbols?".°-.as if this were of argument. revolution that might take ptace in any conccptua! rdcv'0.nce!.-or be just As an aside I would like to in- the current decade. say:q,, "Oucss what it does!" bror]l sert a warning to ~hose who identify In principle I leave it to you to this observa{h)n wc nmst conclude the difficulty of the programming decide for yourself how much weight that this !ang<~agc as a too/ i,q an task with the struggle against the you are going to give to my con- open invitation for clcver 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 toots will be much more my beliefs. As in each serious revolu- v/::. to those who like to show how adcquatc, programming will no longer tion, it will provoke violent opposi- clever they arc, I am sorry, but be a probbtrl. Prograrnming will re- tion and one can ask oneself where 1 must regard this as one of the main very diliicult, because once we to expect the conservative forces most danming thiirgs that can be have freed ourselves from the cir- trying to counteract such a develop- said about a prograrnming lan- cumstantial cumbersomeness, we will ment. I don't expect them primarily guage. Another lesson wc should fiud ourselves free to tackle the in big business, not even in the com- havc learned from the recent past is problems that are now wetl beyond puter business; I expect them rather that the development of "richer" or our programming capacity. in the educational institutions that ~'more powerful" programming lan- 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 that these baroque rnonstrosities, collect experimental evidence for its users that think their old programs these conglomerations of idiosyn- support, a fact that witt not prevent so important that they don't think it crasies, are really unnmnageable, both me from believing in its validity. Up worthwhile to rewrite and improve 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, concept for all systems embodying a computing facility has too often been for instance, not only ALGOL 60'S nicely factored sok~tion~ I could even determined by the demands of a few for clause," but even FORTRAN'S ~*DC) go one step further and make an established but expensive applica- loop" may find themselves thrown article of faith out of it, viz. that tions with a disregard 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 solve in a satisfactory manner are users" who are willing to write their really experienced vohmteers, but those that finally admit a nicely fac- own programs arc going to suffer something quite unintended and quite tored solution. At first sight this from this choice. Too 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 etitiort was so tightly connected to tions is to know them. By the time fiat denim 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 btockcd from seeing o~her efforts escape our intellectual surance, alas, can be obtained from the obvious. Their solutions were grip, we shall do our utmost to avoict the remark {hat the intel|ectuat ceil- less efficient, needlessly hard to un- all those interfaces impairingour abil- ing of today's average programmer derstand, and it took them a very ity to factor the system in a helpful will prevent the revolution from tak- long time to find them. It was a re- way. And t can not but expect that ing place: with others programming vesting, but also shocking experG 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. ruing langt~ages will differ greatly Anyone who has seen how the ma~ There may also be pdidcal im~ from what we are used to now: to jority of the troubles of the compit~ pedimems. Even if we know how a much greater extent than hitherto ing phase called "code generation" to educate tomorrow's professio~M they should invite us to reflect i~ can be tracked down to funny prop-,. programmer, it is ~ot certain that

S65 of Vdume 15 ~h¢. AC'M Number tO ~he society vve ~e :Hvina in wilI albw computation time. I do not kuow us m do so. The ~rst effect of teach- of ;m) other technology covering a bag a me~hodobgy~-ra~her than dis- ~atio of l() ~'' or more the con~pu{er, semi~adng knowledge-is that of eu- by virtue of its famas~ic speed, seems hanci~g 0~e capacities of ~hc already to bc ~hc first to provide us with an capable, thus magnify ~g the diKcr- enviromue~, whcrc highly hierarch- ence in intelligence. In a socic b in ical ardtac~s arc bod~ possible and which the educationa~ system is used nccessar,,. This challenge, ~'i~:, the as an instrun~cn~ for the establish- confrontation with the program: ment of a homoge~fized culture, in mirlg task, is so unique that this which the cream is prcvcmcd trom novel experience can teach us a lot rising to the top, the education of about ourselves. 1~ should deepen competent programmers couki be our m~derstanding of the processes potiticaily unpalataNe. of design and creation: it should give Let hie conclude Automatic com- us better comrol over d~e task of puters have now been with us for organizing our thoughts. If it did a quarter of a century. They have not do so. to nay taste we should had a great impact on our society ~ot deserve the computer at all! in ~heir capacity of tools, but in that It has already taught us a few capacity their imluence will be but lessons, and the one t have chosen a ripple on the surface of our cul- to stress in this talk is the follow- ture compared wish the nmch more ing. We shall do a much better pro- profound influence they wili have in gramming job, provided that we their capacity of intellectual chal- approach the task with a full appre- lenge which witt be without prece- ciation of its tremendous difficulty, dent in ~he cultural history of man- provided that we stick to modest kind. Hierarchical systems seem to and ebgant programming languages, have the property that something provided d~at we respect the intrinsic considered as an undivided entity on ~imitadons of the human mind and one tevel is considered as a com- approach the task as Very Humble posite object on the next lower level Programmers. of greater de~aii; as a resuk the natural grain of space or dine that is applicable a~ each Ievet decreases by an order of magnitude when we shift our attention from one bvel to ~he next tower one. We understand walls in ~erms of bricks, bricks in terms of crystals, crystals in terms of moiecubs, etc. As a result the number of levels tha can be distin- guis,hed meaningfully in a hierarchical system is kind of proportional to the logarithm of the ratio between the largest and the smat~es~ grain, and therefore, unless this ratio is verb' large, we cannot expect many levels. I~l our basic building block has an associated dine grain of less than a microsecond, butt our program may take hours of [Referer~ces to the fo{lowir~g foot- gramrr6ag, control, CACM 8 (Smpt, 1965), notes are found in the extract from the 569; The structt~re of the "THE" multi- Tur[ng Award citation on page 859.] programming system, CACM /t (May, ~gome median*ions ors advanced program- I968), 341~346, ruing, Pro~eedings of Ibe IFfP Coagres~ :~Go ~o s~a{emen[ considered harmful, t962, 535~53g; Programmir~g considered CACM 1~ (Mar, t968), {47-~48, as a human activity, Proceedings of the "~A short h~rod~cdor~ to ~he art of |FIP Congre~s {965, 2t3-2i7. compmer programmif~g, Technische Hoge~ ~So/~:ion of a probbm in cor~currem pro~ school, EindhoverL 1971,

866 ( ommgnicafions October 1972 of Volume 15