To understand this analysis requires a sufficient knowledge of
the C programming language and what an x86 emulator does.
Every C programmer that knows what an x86 emulator is knows that when H0
emulates the machine language of Infinite_Loop, Infinite_Recursion, and
DDD that it must abort these emulations so that itself can terminate normally.
When this is construed as non-halting criteria then simulating termination
analyzer H0 is correct to reject these inputs as non-halting.
the C programming language and what an x86 emulator does.
Code:
typedef void (*ptr)();
int H0(ptr P);
void Infinite_Loop()
{
HERE: goto HERE;
}
void Infinite_Recursion()
{
Infinite_Recursion();
}
void DDD()
{
H0(DDD);
}
int main()
{
H0(Infinite_Loop);
H0(Infinite_Recursion);
H0(DDD);
}
Every C programmer that knows what an x86 emulator is knows that when H0
emulates the machine language of Infinite_Loop, Infinite_Recursion, and
DDD that it must abort these emulations so that itself can terminate normally.
When this is construed as non-halting criteria then simulating termination
analyzer H0 is correct to reject these inputs as non-halting.
Last edited: