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.