Path: utzoo!attcan!uunet!jarthur!usc!ucsd!pacbell.com!pacbell!osc!jgk From: jgk@osc.COM (Joe Keane) Newsgroups: comp.lang.functional Subject: Re: BOTTOM !== NONTERMINATION Summary: Put the information where i can use it. Keywords: bottom, exception handling Message-ID: <3207@osc.COM> Date: 27 Jul 90 21:31:43 GMT References: <23552@megaron.cs.arizona.edu> <3936@rex.cs.tulane.edu> <3940@rex.cs.tulane.edu> Reply-To: jgk@osc.COM (Joe Keane) Organization: Object Sciences Corp., Menlo Park, CA Lines: 34 In article <3936@rex.cs.tulane.edu> fs@rex.cs.tulane.edu (Frank Silbermann) writes: >Maximal information should not be confused with metalogical information. In article <3940@rex.cs.tulane.edu> fs@rex.cs.tulane.edu (Frank Silbermann) writes: >Or vice-versa. Though we cannot solve the halting problem, >you _might_ want to build into a students' compiler >routines to catch the most obvious form of infinite looping, >and replace the bad subcomputation with the bottom symbol. This is clearly a useful feature to have. >Must the result be considered as a different language, >just because the interpreter is _sometimes_ able to tell you >that the program denotes bottom, instead of just letting it loop? >True, there is some extra metalogical information provided, >but as long as the program is forbidden to make use of it, >it need not be considered a change in the language. I agree that if the interpreter has all this extra information, but it's not available to user programs, then it's not part of the language. My question is, why would you want to do this? Suppose in the language i write a nifty windowing system including an interactive debugger with flashy graphics, sophisticated tracing, source-level debugging, the works. I'm debugging a program which gets into a detectable infinite loop. The run-time system detects this, spits out a nasty error message in Chinese on the line printer down the hall, and my computer ceases to work henceforth. A lot of good that does me. You've got the information, so put it in the language. You get a new language, which is isomorphic to the old one if you don't use the new features. I don't see what's wrong with that.