home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / lang / cplus / 13335 < prev    next >
Encoding:
Internet Message Format  |  1992-09-08  |  2.7 KB

  1. Path: sparky!uunet!cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!att!allegra!alice!ark
  2. From: ark@alice.att.com (Andrew Koenig)
  3. Newsgroups: comp.lang.c++
  4. Subject: Re: GOTO, was: Tiny proposal for na
  5. Message-ID: <23634@alice.att.com>
  6. Date: 5 Sep 92 17:04:34 GMT
  7. Article-I.D.: alice.23634
  8. References: <714668024@thor> <6800007@tisdec.tis.tandy.com> <1992Aug26.130335.26725@hemlock.cray.com> <1992Aug26.194538.1598@spss.com> <rmartin.714931485@thor> <1992Aug27.181013.29933@spss.com> <rmartin.715102882@thor> <1992Aug31.170908.13389@us-es.sel.de>
  9. Reply-To: ark@alice.UUCP ()
  10. Organization: AT&T Bell Laboratories, Murray Hill NJ
  11. Lines: 41
  12.  
  13. In article <1992Aug31.170908.13389@us-es.sel.de> kanze@us-es.sel.de (James Kanze) writes:
  14.  
  15. > Bob, don't you realize that Bill has just given the strongest argument yet
  16. > in favor of what you've been saying.  The only "clear and convincing argument
  17. > that the code is correct" must use logical proof of correctness concepts.
  18. > These concepts, at least in the literature I've seen, *only* address the three
  19. > basic forms of program flow: sequence, iteration and conditional.
  20.  
  21. But since every program can be mechanically rewritten in that form,
  22. it doesn't matter.  Moreover, if we do grant your premise, we might
  23. argue that it is even easier to prove programs correct if we eliminate
  24. iteration, which after all can always be expressed by recursion.
  25. [Indeed, there is now a whole family of languages that do just that]
  26.  
  27. Incidentally, this whole discussion harks back to a debate that appeared
  28. a number of years ago in ACM Software Engineering Notes.  It began with
  29. an article called `Social Processes and the Proofs of Theorems and Programs'
  30. (or something like that) by DeMillo, Lipton, and Perlis.  Among the points
  31. in that article:
  32.  
  33.     The mathematical community does not automatically accept
  34.     formal proofs as establishing truth; the proof might be wrong.
  35.     Rather, they insist that the result fit in with their existing
  36.     framework of knowledge.  In effect, new theorems are established
  37.     primarily by social means -- a formal proof is important but
  38.     not sufficient by itself.
  39.  
  40.     Similarly, if a program spits out a 20,000-line proof of the
  41.     `validity' of some other program, is that going to convince
  42.     anyone that the program is actually correct?  They argue no:
  43.     if nothing else, it is necessary to show that what was proved
  44.     is actually the property that the author wanted the program to have.
  45.  
  46. This article was the subject of a rebuttal from Edsger Dijkstra that
  47. was so strident and emotional as to detract from its credibility.
  48. The article was called `On a Political Pamphlet from the Middle Ages,'
  49. and its tone was consistent with the title.  That led to a re-rebuttal,
  50. and so on.  Fascinating reading.
  51. -- 
  52.                 --Andrew Koenig
  53.                   ark@europa.att.com
  54.