Sujet : Re: Every sufficiently competent C programmer knows
De : mikko.levanto (at) *nospam* iki.fi (Mikko)
Groupes : comp.theoryDate : 11. Mar 2025, 11:30:58
Autres entêtes
Organisation : -
Message-ID : <vqp3d2$1u13r$1@dont-email.me>
References : 1 2 3
User-Agent : Unison/2.2
On 2025-03-11 02:27:42 +0000, olcott said:
On 3/10/2025 9:21 PM, Richard Damon wrote:
On 3/10/25 7:41 PM, olcott wrote:
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.
Problem: DD Isn't a program, and if you try to compile it, you will get an undiefined symbol HHH.
HHH need not be a program for this correct thought experiment.
The only detail required to know about HHH is that it correctly
emulates N steps of DD.
Wrong. One nneds also to know how a call to HHH is interpreted, in particular
if HHH is not a program.
-- Mikko