Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utcs!mnetor!seismo!ll-xn!cit-vax!cit-vlsi!blake From: blake@cit-vlsi.UUCP Newsgroups: net.lang Subject: Re: compound statements Message-ID: <810@cit-vax.Caltech.Edu> Date: Thu, 17-Jul-86 02:26:10 EDT Article-I.D.: cit-vax.810 Posted: Thu Jul 17 02:26:10 1986 Date-Received: Thu, 17-Jul-86 19:48:08 EDT References: <5281@topaz.RUTGERS.EDU> <800015@ccvaxa> <463@opus.nbires.UUCP> Sender: news@cit-vax.Caltech.Edu Reply-To: blake@cit-vlsi.UUCP (Blake Lewis) Organization: California Institute of Technology Lines: 30 In article <463@opus.nbires.UUCP> rcd@nbires.UUCP (Dick Dunn) writes: >> Dijkstra argues that making the null statement explicit, `skip', with >> defined semantics, may be as important for computer science as the >> invention of zero was for arithmetic. > >Mmph. That's either a misattribution or one of the craziest analogies I'VE >ever heard... > >(Seriously, a context for the Dijkstra statement would be appreciated.) > >Dick Dunn {hao,ucbvax,allegra}!nbires!rcd (303)444-5710 x3086 "Those who think it a waste of characters to introduce an explicit name such as 'skip' for the empty statement while 'nothing' expresses its semantics so eloquently, should realize that the decimal number system was only possible thanks to the the introduction of the character '0' for the concept zero" Edsger W. Dijkstra, A Discipline of Programming (p. 25) The analogy isn't so farfetched. Viewed as a predicate transformer, skip represents a simple but indispensable function, namely the identity. It must be included in some guise in every reasonsable language. It is essential to realize that the empty statement *is* a statement in order to define programming language semantics sensibly. Similarly, it had to be understood that zero is a number before a good notation for numbers could be devised. One can certainly argue that a good notation for program semantics is as important for the development of computer science as the decimal system was for arithmetic.