Sujet : Re: Flat out dishonest or totally ignorant?
De : mikko.levanto (at) *nospam* iki.fi (Mikko)
Groupes : comp.theoryDate : 02. Jul 2024, 07:23:52
Autres entêtes
Organisation : -
Message-ID : <v606dn$1hg04$1@dont-email.me>
References : 1
User-Agent : Unison/2.2
On 2024-07-02 01:25:40 +0000, olcott said:
typedef void (*ptr)();
int HHH(ptr P);
void Infinite_Loop()
{
HERE: goto HERE;
}
void Infinite_Recursion()
{
Infinite_Recursion();
}
void DDD()
{
HHH(DDD);
}
int main()
{
HHH(Infinite_Loop);
HHH(Infinite_Recursion);
HHH(DDD);
}
Every C programmer that knows what an x86 emulator is knows
that when HHH emulates the machine language of Infinite_Loop,
Infinite_Recursion, and DDD that it must abort these emulations
so that itself can terminate normally.
The "must" there is not quite correct. If the emulator does not abort
then it will run forever or until the emulator is aborted by some
external agent. That is not a problem unless there is an additional
requirement, not specified above, that the emulator must terminate
normally.
-- Mikko