Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!helios!willis From: willis@cs.tamu.edu (Willis Marti) Newsgroups: comp.lang.misc Subject: Re: The Forbiden Summary: restrictions are necessary Message-ID: <7662@helios.TAMU.EDU> Date: 23 Aug 90 19:40:30 GMT References: <24279@megaron.cs.arizona.edu> Sender: usenet@helios.TAMU.EDU Organization: Computer Science Department, Texas A&M University Lines: 23 In article <24279@megaron.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes: [lots of other stuff deleted] >impossible in most non-recursive programs. The only programs where >non-recursion cannot be proven automatically are those which have a >recursive call in a section of code that will never be executed, but >where the compiler cannot prove that the code will never be executed. >Since such programs are almost guaranteed to be not what the >programmer intended, I feel confident in saying that non-recursion can >be automatically proven in correct non-recursive programs. Not true. In C, with pointers to functions; in assembler, with indirect jumps; in FORTRAN, with computed GOTOs -- there are MANY times a compiler can't "prove" the execution path of a program without running it. And some of those paths may use recursion, some may never use it. I feel you really have the choice of the language designer making some assumptions (i.e., forbidding some coding practices) or making a language that's either extremely verbose (can you say PL/1 or Ada? 8-) or provides zero checking... Programmers should choose an appropriate tool & not complain that their one tool doesn't have feature XYZ. Willis Marti