Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Mikko Newsgroups: comp.theory Subject: Re: Every sufficiently competent C programmer knows Date: Tue, 11 Mar 2025 16:02:49 +0200 Organization: - Lines: 69 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 11 Mar 2025 15:02:50 +0100 (CET) Injection-Info: dont-email.me; posting-host="f64b7d6d949d5ffa56cc1b658fb0afb4"; logging-data="2121587"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/TsIRu0IuiQcoHmU5bW/ib" User-Agent: Unison/2.2 Cancel-Lock: sha1:dIXHI6NOi/XpBu8GCuk5f+O8AvY= Bytes: 3206 On 2025-03-11 13:26:55 +0000, olcott said: > On 3/11/2025 5:01 AM, Richard Heathfield wrote: >> On 11/03/2025 08:55, Fred. Zwarts wrote: >>> Op 11.mrt.2025 om 00:41 schreef olcott: >>>> 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; >>>> } >>>> >>>> That when HHH correctly emulates N steps of the >>>> above functions that none of these functions can >>>> possibly reach their own "return" instruction >>>> and terminate normally. >>>>> >>>> >>>> Since HHH does see that same pattern that competent >>>> C programmers see it correctly aborts its emulation >>>> and rejects these inputs as non terminating. >>> >>> All competent C programmers see that HHH correctly reports that it >>> cannot possibly reach the 'return' instruction. >> >> First, my credentials. I've been programming in C for over 35 years; >> I'm told that my book on C has been used on two undergraduate Comp Sci >> courses (one in the States and one in the UK); and I have my Knuth >> cheque. I don't claim to be any kind of programming guru, but I hope I >> do not overstate the case when I suggest that I can be regarded as >> competent not just as a programmer but specifically in the C language. >> >> And yet I can't even /see/ HHH, let alone judge what it does or does >> not do correctly. All I see is a call to it. > > It is stipulated that HHH correctly emulates N > steps of the x86 machine code of its input functions. > This may or may not include HHH emulating itself > emulating an input. The stipulation does not include the value of N (although a reasonable interpretation is that it is finite). Nor does the stipulation specify what HHH does after the emulation. -- Mikko