Deutsch English Français Italiano |
<v2enl9$3r9t0$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: olcott <polcott333@gmail.com> Newsgroups: comp.lang.c,comp.lang.c++ Subject: Re: Can someone please verify the execution trace of this? Date: Mon, 20 May 2024 00:38:47 -0500 Organization: A noiseless patient Spider Lines: 140 Message-ID: <v2enl9$3r9t0$1@dont-email.me> References: <v2b78t$2vima$1@dont-email.me> <v2df79$3ghfd$1@raubtier-asyl.eternal-september.org> <v2di7v$3gujt$1@dont-email.me> <v2eada$3p6sk$1@raubtier-asyl.eternal-september.org> <v2edbr$3pl2i$1@dont-email.me> <v2eluk$3r1qu$1@raubtier-asyl.eternal-september.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 20 May 2024 07:38:49 +0200 (CEST) Injection-Info: dont-email.me; posting-host="629f9cefad5d4023792ce8f8ed8d9594"; logging-data="4040608"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+P0ttgyP4QwCL6ysSRAdlG" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:+AEUWagtIRXLrsx/mHn8eMOv80k= Content-Language: en-US In-Reply-To: <v2eluk$3r1qu$1@raubtier-asyl.eternal-september.org> Bytes: 5811 On 5/20/2024 12:09 AM, Bonita Montero wrote: > Am 20.05.2024 um 04:43 schrieb olcott: >> On 5/19/2024 8:52 PM, Bonita Montero wrote: >>> Am 19.05.2024 um 21:00 schrieb olcott: >>>> On 5/19/2024 1:08 PM, Bonita Montero wrote: >>>>> Am 18.05.2024 um 23:40 schrieb olcott: >>>>>> People are saying that they have no idea what this code does >>>>>> because they do not believe it conforms to c11 or c17. >>>>>> >>>>>> typedef int (*ptr)(); // ptr is pointer to int function >>>>>> 00 int H(ptr x, ptr y); >>>>>> 01 int D(ptr x) >>>>>> 02 { >>>>>> 03 int Halt_Status = H(x, x); >>>>>> 04 if (Halt_Status) >>>>>> 05 HERE: goto HERE; >>>>>> 06 return Halt_Status; >>>>>> 07 } >>>>>> 08 >>>>>> 09 int main() >>>>>> 10 { >>>>>> 11 H(D,D); >>>>>> 12 return 0; >>>>>> 13 } >>>>>> >>>>>> In the above case a simulator is an x86 emulator that correctly >>>>>> emulates >>>>>> at least one of the x86 instructions of D in the order specified >>>>>> by the >>>>>> x86 instructions of D. >>>>>> >>>>>> This may include correctly emulating the x86 instructions of H in the >>>>>> order specified by the x86 instructions of H thus calling H(D,D) in >>>>>> recursive simulation. >>>>>> >>>>>> *Execution Trace* >>>>>> Line 11: main() invokes H(D,D); >>>>>> >>>>>> *keeps repeating* (unless aborted) >>>>>> Line 01: >>>>>> Line 02: >>>>>> Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D) >>>>>> >>>>>> *Simulation invariant* >>>>>> D correctly simulated by H cannot possibly reach past its own line >>>>>> 03. >>>>>> >>>>>> The key thing to note is that no D correctly simulated by any H of >>>>>> every >>>>>> H/D pair specified by the above template ever reaches its own line 06 >>>>>> and halts. >>>>>> >>>>> >>>>> Other people think 30s about this, you think years about that. >>>>> >>>> >>>> It is the basis for my two decades long primary research into >>>> termination analysis. People on another forum have written >>>> hundreds of posts claiming that D correctly simulated by H >>>> reaches its own line 06 and halts. >>>> >>>> *I have only gotten truthful answers on this forum* >>>> >>> >>> That's not research, that's nonsense. >>> >> >> This is not the forum to show that it is not nonsense this is >> a simple C question that I should not even have to ask except >> for a few people in another forum that consistently lie about >> the answer. >> >> I have been a professional C++ developer since Y2K. So I already >> know the answer, I just need some competent people in this forum >> to attest to this answer. I met Bjarne Stroustrup back when he >> was going around the country promoting his new language. >> > > You ask the same questions over and over again for years. > It's like circling your thoughts before you fall asleep - > you don't think about whether it really makes sense. > It would take three people five minutes a piece. Then I can go back to the other forum. They have been lying about how the above code works consistently for two years. I know how it works. I learned C back when K & R was the standard. Three people take five minutes a piece to confirm the that the last sentence is correct. typedef int (*ptr)(); // ptr is pointer to int function 00 int H(ptr p, ptr i); 01 int D(ptr p) 02 { 03 int Halt_Status = H(p, p); 04 if (Halt_Status) 05 HERE: goto HERE; 06 return Halt_Status; 07 } 08 09 int main() 10 { 11 H(D,D); 12 return 0; 13 } In the above case a simulator is an x86 emulator that correctly emulates at least one of the x86 instructions of D in the order specified by the x86 instructions of D. This may include correctly emulating the x86 instructions of H in the order specified by the x86 instructions of H thus calling H(D,D) in recursive simulation. Execution Trace Line 11: main() invokes H(D,D); keeps repeating (unless aborted) Line 01: Line 02: Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D) Simulation invariant: D correctly simulated by H cannot possibly reach past its own line 03. H must be a pure function https://en.wikipedia.org/wiki/Pure_function# *THIS ONE SENTENCE NEEDS TO BE CONFIRMED* For every H/D pair of the above template D correctly simulated by H cannot possibly reach its own final state at line 06 and halt. -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer