David Gries Advisory Board F.L
Total Page:16
File Type:pdf, Size:1020Kb
Texts and Monographs in Computer Science Editor David Gries Advisory Board F.L. Bauer S.D. Brookes C.E. Leiserson F. B. Schneider M. Sipser Texts and Monographs in Computer Science Suad Alagie Object-oriented Database Programming 1989. XV, 320pages,84 illus. Suad Alagie Relational Database Technology 1986. XI, 259pages, 114ilIus. Suad Alagie and MichaelA. Arbib The Design of Well-Structured and Correct Programs 1978. X, 292pages,68 illus. S. Thomas Alexander Adaptive Signal Processing: Theory and Applications 1986. IX, 179pages,42 illus. MichaelA. Arbib, AJ. Kfoury, and Robert N. Moll A Basis for Theoretical Computer Science 1981. VIII, 220pages,49 iIlus. Friedrich L. Bauer and Hans Wossner Algorithmic Language and Program Development 1982. XVI, 497pages, 109 ilIus. Kaare Christian A Guide to Modula·2 1986. XIX, 436pages,46 ilIus. Edsger W. Dijkstra Selected Writings on Computing: A Personal Perspective 1982. XVII, 362pages, 13 illus. Edsger W. Dijkstra and Carel S. Schoiten Predicate Calculus and Program Semantics 1990. XII, 220pages W.HJ. Feijen,AJ.M. van Gasteren, D. Gries, and J. Misra, Eds. Beauty Is Our Business: A Birthday Salute to Edsger W. Dijkstra 1990. XX, 453pages,21 ilIus. MelvinFitting First-order Logic and Automated Theorem Proving 1990. XIV, 242pages,26 illus. Nissim Francez Fairness 1986. XIII, 295pages, 147illus. continued afterindex Beauty Is Our Business A Birthday Salute to Edsger W. Dijkstra Edited by W.H.J. Feijen A.J.M. van Gasteren D. Gries J. Misra Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong W.H.J. Feijen A.J .M. van Gasteren Mathematics and Computer Science Department Department of Computer Science Eindhoven University of Technology University of Utrecht 5600 MB Eindhoven 3508 TB Ut recht The Net herlands The Netherlands D. Gries J. Misra Department of Computer Science Department of Comput er Science Cornell University The University of Texas Ithaca, NY 14853 Austin, TX 78712-1188 U.S.A. U.S.A. Series Editor David Gries Department of Computer Science Cornell University Ithaca, NY 14853 U.S.A. Library of Congress Cataloging-in-Publication Data Beauty is our business: a birthday salute to Edsger W. Dijkstral W.H.J. Feijen . let al.], editors. p. em. - ('Thxts and monographs in computer science) ISBN-13: 978-1-4612-8792-6 e-ISBN-13: 978-1-4612-4476-9 DOl: 10.1007/978-1-4612-4476-9 1. Computer science. 2. Dijkstra, Edsger W. I. Feijen, W.H.J. II. Series. QA76.B326 1990 004-dc20 90.33578 Printed on acid-free paper. @1990 by Springer-Verlag New York, Inc. Softcover reprint of the hardcover I st edition 1990 All rights reserved . This work may not be translated or copied in whole or in part with out the written permission of the publisher (Springer-Verlag, 175 Fifth Avenue, New York, NY 10010, USA), except for brief excerpts in connection with reviews or scholarly analysis. Use in connect ion with any form of information storage or retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed is forbidden. The use of general descriptive names, trade names, trademarks, et c. in this publica tion, even if the former are not especially identifi ed, is not to be taken as a sign that such names, as und erstood by the Trade Marks and Merchandise Marks Act , may accordingly be used freely be anyone. Typeset with ~EX by Hilary Backhouse, The Netherlands. Index prepared by Jim Farned of the Information Bank , Summerland, California. 987654321 Dedicated to Edsger W. Dijkstra on the occasion of his 60th birthday Edsger W. Dijkstra The working vocabulary of programmers everywhere is studded with words originated or forcefully promulgated by E.W. Dijkstra - display, deadly embrace, semaphore, go-to-less programming, structured programming. But his influence on programming is more pervasive than any glos sary can possibly indicate. The precious gift that this Turing Award acknowledges is Dijkstra's style . .. We have come to value good programs in much the same way as we value good literature. And at the center of this movement, creating and reflecting patterns no less beautiful than use ful, stands E.W. Dijkstra. Doug McIlroy [Extract from the Turing Award Citation by Doug McIlroy, chairman of the ACM Turing Award Committee, at the presentation of this lecture on August 14, 1972, at the ACM Annual Conference in Boston.] This extract was published in the CACM 15:10 (October 1972), page 859 and is reprinted here by permission of the Association for Computing Ma chinery. Foreword Edsger W. Dijkstra is one of a very small number of people who, through their research and teaching, have provided computing with an intellectual foundation that can justifiably be termed a science. His seminal contribu tions to such fields as language and compiler design, operating systems, and programming methodology have led to his receiving numerous honours and awards, including the 1972 ACM Turing Award, recognized by all as the highest award in computing. This book is another such expression of the debt that our subject owes to Edsger . It has been prepared, as a surprise present for him on the occasion of his sixtieth birthday, by some of the many people whose own contri butions to our field have been inspired or assisted by him. In view of the galaxy of talent represented here by this book's collective authorship, and the great personal debt that lowe to Edsger, I feel doubly privileged to have been invited to write a foreword. I have had the pleasure of knowing Edsger for almost thirty years. I first met him when he lectured in Brighton, UK, on the ALGOL 60 compiler that he and his colleague J .A. Zonneveld had just produced for the Electrologica X-I computer. Their compiler, it should be noted, had been completed in August 1960, just seven months after they had received a copy of the ALGOL-60 Report. This was long before anyone else had learnt how to cope with all the problems and opportunities that the new language provided. A year or so later, in 1963, I asked his opinion on the suggestion that my colleague Lawford Russell and I write a book about the ALGOL 60 compiler that we had produced. This compiler, for the English Electric KDF9 computer, was based in no small measure on the design of his original X-I compiler . Edsger was very supportive, but gave us some very valuable, albeit uncomfortable, advice : instead of just describing our compiler, we should try to describe all the alternatives we had considered for each design choice and the basis on which we had chosen amongst these alternatives. Moreover, he advised that we should make a point of admitting it when our choice had been arbitrary and /or had in retrospect proved to be wrong. I have always been extremely grateful for this advice - and have taken care to pass it on to all my graduate students. x Foreword One final personal note about my interactions with Edsger concerns the 1968 NATO Software Engineering Conference. We have both since gone on record as to how the discussions at this conference on the "software crisis", and on the potential for software-induced catastrophes, strongly influenced our thinking and our subsequent research activities. In Edsger's case it led him into an immensely fruitful long-term study of the problems of producing high quality programs. In my own case, it led me to consider the then very novel, and still somewhat controversial, idea of design fault tolerance. Suffice it to say that our respective choices of research problem suitably reflect our respective skills at program design and verification. Edsger's 1963 advice to me is of course in line with the fact that he has always himself set and followed very high standards for clarity and presen tation of writing and lecturing. Although the lecturing style that he has developed has its critics (some of whom mistakenly interpret his reflective pauses as mere theatricality), my own regret is that I cannot match either his clarity or his skill in inventing or choosing suitable examples. The problems he chooses to concentrate on are always very skillfully se lected (e.g. the dining philosophers problem, on-the-fly garbage collection), and many have become famous standards by which subsequent research is judged. The vivid and effective visual metaphors he still uses serve as a reminder of the effectiveness of the excellent actual pictures he invented many years ago to describe, for example, the process of translating arith metic expressions to post-fix form, and the problem of deadlocks amongst processes competing for shared resources. Edsger is, with all that the word implies, a perfectionist. His program ming and his mathematics are strongly guided by his concern for clarity of notation and exposition, and indeed for what he quite justifiably terms beauty. Thus his descriptions of problems and solutions, both in his lectures and published papers, and in his EWD series of documents;' distributed via a network of friends and colleagues in a fashion reminiscent of Russian "samizdat" literature, are often vivid and compelling. Although over the years much of his work has had a very immediate and beneficial impact, on debate if not always on practice, some of his more recent diagnoses and prescriptions concerning the current state of computing science and mathematics have not been so widely accepted. 1 A superb collection of these EWD documents, which includes several charac teristically acerbic and entertaining trip reports on his experiences at Newcastle's Annual International Seminar on the Teaching of Computing Science, and a num ber of equally amusing and pointed memoranda written in his purported role as Chairman of Mathematics Inc ., is to be found in "Selected Writings on Com puting:A Personal Perspective", by E.W.