| Deutsch English Français Italiano |
|
<v5r696$enkl$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Mikko <mikko.levanto@iki.fi>
Newsgroups: comp.theory
Subject: Re: People are still trying to get away with disagreeing with the semantics of the x86 language
Date: Sun, 30 Jun 2024 11:50:46 +0300
Organization: -
Lines: 125
Message-ID: <v5r696$enkl$1@dont-email.me>
References: <v5pbjf$55h$1@dont-email.me> <v5pdmk$1gd9e$1@i2pn2.org> <v5pfj9$adt$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 30 Jun 2024 10:50:47 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="edf92710cff98efa55bbf9e0df377222";
logging-data="482965"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19M2tdJaiXN5METTK5exlxT"
User-Agent: Unison/2.2
Cancel-Lock: sha1:Yiqex/S3fseHLeRL93kfn4FmkPo=
Bytes: 5576
On 2024-06-29 17:17:29 +0000, olcott said:
> On 6/29/2024 11:45 AM, Richard Damon wrote:
>> On 6/29/24 12:09 PM, olcott wrote:
>>> People are still trying to get away with disagreeing with
>>> the semantics of the x86 language. That is isomorphic to
>>> trying to get away with disagreeing with arithmetic.
>>
>> Nope, we are not disagreeing with the semantics of the x86 language, we
>> are disagreeing with your misunderstanding of how it works.
>>
>>>
>>> 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.
>>
>> No the x86 language "knows" NOTHING about H0 being a x86 emulator. It
>> is just a function that maybe happens to be a partial x86 emulator, but
>> that is NOT a fundamental result of it being H0.
>>
>>>
>>> When this is construed as non-halting criteria then simulating
>>> termination analyzer H0 is correct to reject these inputs as
>>> non-halting by returning 0 to its caller.
>>
>> It is construed as non-halting BECAUSE it has been shown that your H0
>> *WILL* terminate its PARTIAL emulation of the code it is emulating and
>> returning.
>>
>>>
>>> Simulating termination analyzers must report on the behavior
>>> that their finite string input specifies thus H0 must report
>>> that DDD correctly emulated by H0 remains stuck in recursive
>>> simulation.
>>
>> Right, so H0 is REQUIRED to return, and thus if the termination
>> analyser knows that H0 is a termination analyzer it knows that the call
>> to H0 MUST return, and thus DDD must be a terminating program.
>>
>> An H0 that doesn't know this, and can't figure out that H0 will return,
>> but just keeps emulating H0 emulating its input will just fail to meet
>> its own requirement to return.
>>
>>>
>>> <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
>>> If simulating halt decider H correctly simulates its input D
>>> until H correctly determines that its simulated D would never
>>> stop running unless aborted then
>>>
>>> H can abort its simulation of D and correctly report that D
>>> specifies a non-halting sequence of configurations.
>>> </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
>>
>> Right, and the only definition Professor Sipser uses for "Correct
>> Simulation" is a simulation that EXACTLY REPRODUCES the behavior of the
>> directly executed program represented by the input. Your H doesn't do
>> that, nor correctly predicts the behavior of such a simulation of the
>> input (since that behavior is to halt) so it can never proper avail
>> itself of the second paragraph, so does so erroneously getting the
>> wrong answer.
>>
>>>
>>> People are trying to get away with disagreeing with the semantics
>>> of the x86 language by disagreeing that
>>>
>>> The call from DDD to HHH(DDD) when N steps of DDD are correctly
>>> emulated by any pure function x86 emulator HHH cannot possibly
>>> return.
>>
>> Except that the "N Steps of DDD correctly emulated" is NOT the
>> definition of the "behavior" of the input DDD.
>>
>> "inputs" Do not have "behavoir", that is a property of a program, so
>> the input only "represents" that program, in this case the program DDD.
>>
>
> *According to the professor Sipser approved criteria YES IT IS*
It is not a good idea to speculate about other peoples opinions.
Better to stick to the topic specified by OP.
> The call from DDD to HHH(DDD) when N steps of DDD are correctly
> emulated by any pure function x86 emulator HHH cannot possibly
> return.
>
> _DDD()
> [00002172] 55 push ebp ; housekeeping
> [00002173] 8bec mov ebp,esp ; housekeeping
> [00002175] 6872210000 push 00002172 ; push DDD
> [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
> [0000217f] 83c404 add esp,+04
> [00002182] 5d pop ebp
> [00002183] c3 ret
> Size in bytes:(0018) [00002183]
--
Mikko