Every sufficiently competent C programmer knows --- original post appended at end

Liste des GroupesRevenir à cl c 
Sujet : Every sufficiently competent C programmer knows --- original post appended at end
De : polcott333 (at) *nospam* gmail.com (olcott)
Groupes : comp.theory comp.lang.c comp.lang.c++
Suivi-à : comp.theory
Date : 16. Mar 2025, 20:36:11
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vr797c$2cr9u$2@dont-email.me>
References : 1 2 3 4 5 6 7 8
User-Agent : Mozilla Thunderbird
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.
Since HHH does see that same pattern that competent
C programmers see it correctly aborts its emulation
and rejects these inputs as non terminating.
--
Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
hits a target no one else can see." Arthur Schopenhauer

Date Sujet#  Auteur
11 Mar 25 * Every sufficiently competent C programmer knows10olcott
11 Mar 25 +- Re: Every sufficiently competent C programmer knows --- Stupid Mistake?1olcott
11 Mar 25 +- Re: Every sufficiently competent C programmer knows --- Counter-Factual ERROR1olcott
12 Mar 25 +* Re: Every sufficiently competent C programmer knows --- Very Stupid Mistake2olcott
12 Mar 25 i`- Re: Every sufficiently competent C programmer knows --- Very Stupid Mistake and Liars1olcott
12 Mar 25 +- Re: Every sufficiently competent C programmer knows --- Mike's very stupid mistake1olcott
13 Mar 25 +- Re: Every sufficiently competent C programmer knows --- Very Stupid Mistake or Liars1olcott
15 Mar 25 +* Re: Every sufficiently competent C programmer knows --- Paraphrase of Sipser's agreement2olcott
16 Mar 25 i`- Re: Every sufficiently competent C programmer knows --- Paraphrase of Sipser's agreement1olcott
16 Mar 25 `- Every sufficiently competent C programmer knows --- original post appended at end1olcott

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal