Deutsch English Français Italiano |
<e9667ba3d0ec584b7bb130d4f3875fb19241237c@i2pn2.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: joes <noreply@example.org> Newsgroups: comp.theory Subject: Re: Every sufficiently competent C programmer knows --- original post appended at end Date: Sun, 16 Mar 2025 20:21:55 -0000 (UTC) Organization: i2pn2 (i2pn.org) Message-ID: <e9667ba3d0ec584b7bb130d4f3875fb19241237c@i2pn2.org> References: <vqntaq$1jut5$1@dont-email.me> <473a9a152c792a48c83eea569551035994c9d04f@i2pn2.org> <vqo72u$1l6i0$2@dont-email.me> <vqp3d2$1u13r$1@dont-email.me> <vqpe5a$202b2$3@dont-email.me> <vr699j$1js2s$1@dont-email.me> <vr6c13$1lvq2$1@dont-email.me> <877c4owze2.fsf@nosuchdomain.example.com> <vr797c$2cr9u$2@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Sun, 16 Mar 2025 20:21:55 -0000 (UTC) Injection-Info: i2pn2.org; logging-data="476694"; mail-complaints-to="usenet@i2pn2.org"; posting-account="nS1KMHaUuWOnF/ukOJzx6Ssd8y16q9UPs1GZ+I3D0CM"; User-Agent: Pan/0.145 (Duplicitous mercenary valetism; d7e168a git.gnome.org/pan2) X-Spam-Checker-Version: SpamAssassin 4.0.0 Bytes: 3625 Lines: 68 Am Sun, 16 Mar 2025 14:36:11 -0500 schrieb olcott: > On 3/16/2025 2:26 PM, Keith Thompson wrote: >> Richard Heathfield <rjh@cpax.org.uk> writes: >>> On 16/03/2025 10:31, Mikko wrote: >>>> False. You didn't say that HHH is a C function. In particular, the >>>> code shown above does not say so. >>> >>> It scarcely qualifies as C. >>> For example, it begins by a goto this code: >>> >>> __asm__("lea eax, DATA1"); >>> __asm__("mov Aborted, eax"); __asm__("lea eax, DATA2"); >>> __asm__("mov execution_trace, eax"); >>> __asm__("mov eax, END_OF_CODE"); __asm__("mov End_Of_Code, eax"); >>> >>> which any C compiler is free to reject. >>> C99 introduced the asm keyword, but that's spelled asm, not __asm__, >>> and of course it's not a magic wand, so it can't make an inherently >>> unportable program work on every platform supported by C compilers. >>> C/370, for example, would have a fit. >> >> No, C99 didn't introduce the asm keyword. Both C90 and C99 (and all >> later editions) document the "asm" keyword as a common extension, but >> it's not in the list of keywords. K&R1 (1978) mentions that some >> implementations reserve "fortran" and "asm". A conforming C compiler >> must accept "asm" as an ordinary identifier. >> I don't think Olcott intends HHH to be fully portable C (assuming he >> knows what that means). In any case, his claims about "Every >> sufficiently competent C programmer" are ludicrous. >> > *Every sufficiently competent C programmer knows* > > typedef void (*ptr)(); > int HHH(ptr P); > > void Infinite_Loop() > { > HERE: goto HERE; > return; > } > void Infinite_Recursion() > { > Infinite_Recursion(); return; > } > void DDD() > { > HHH(DDD); > return; > } > int DD() > { > int Halt_Status = HHH(DD); > if (Halt_Status) > HERE: goto HERE; > return Halt_Status; > } > > When HHH correctly emulates N steps of the above functions none of them > can possibly reach their own "return" instruction and terminate > normally. The fun thing is that DDD does terminate, but HHH can't simulate it. > Since HHH does see that same pattern that competent C programmers see it > correctly aborts its emulation and rejects these inputs as non > terminating. -- Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math: It is not guaranteed that n+1 exists for every n.