Liste des Groupes | Revenir à c theory |
On 6/26/2024 6:02 AM, Richard Damon wrote:Since you agreed that the specification includes the full continued execution trace, if it aborts, it does NOT do a correct emulation of the input, and for this input, if it calim non-halting, it is wrrong ,as then DDD specifies halting behavior by the actually correct emulation of it, the DOES continue until it sees H0 abort its emulation and return.On 6/23/24 9:40 AM, olcott wrote:Yes_DDD()>
[00002172] 55 push ebp
[00002173] 8bec mov ebp,esp
[00002175] 6872210000 push 00002172 ; push DDD
[0000217a] e853f4ffff call 000015d2 ; call HHH0
[0000217f] 83c404 add esp,+04
[00002182] 5d pop ebp
[00002183] c3 ret
Size in bytes:(0018) [00002183]
>
According to the semantics of the x86 programming language
when DDD correctly emulated by H0 calls H0(DDD) this call
cannot possibly return.
According to the semantics of the x86 programming language, a "Correct emulation" of DDD must continue untul we reach the ret at 00002183, a fault occurs, or we hit a Halt instruction, as part of the behavior of every instruction is that the next instruction WILL be run.
>
Thus, the only HHH0 that can exist can not "abort" its simulation, and thus does not answer for this input.No
>
void Infinite_Recursion()Except that it doesn't work, as has been proven in the past.
{
Infinite_Recursion();
}
void DDD()
{
H0(DDD);
}
int main()
{
H0(Infinite_Recursion);
H0(DDD);
}
Literally in the exact same way that H0 detects that
Infinite_Recursion correctly emulated by H0 will never halt
H0 detects that DDD correctly emulated by H0 will never halt.
Les messages affichés proviennent d'usenet.