Liste des Groupes | Revenir à c theory |
On 2025-03-11 13:34:34 +0000, olcott said:I specified that the functions are correctly emulated
On 3/11/2025 5:30 AM, Mikko wrote:You are trying to get away with a distraction by lying?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.
You are trying to get away with saying that
one C function cannot call another C function
according to the semantics of the C language?
Calling is possible if the functions are in the same file or if they
are linked together and the called function is global.
What is not possible is to determine the consequnces of such call
without knowing enough about the called function. As you would
know if you knew anything about programming.
Les messages affichés proviennent d'usenet.