Deutsch   English   Français   Italiano  
<slrn104j0nc.7sc.anthk@openbsd.home>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: anthk <anthk@openbsd.home>
Newsgroups: comp.theory,comp.ai.philosophy,sci.logic
Subject: Re: The execution trace of HHH1(DDD) shows the divergence
Date: Wed, 11 Jun 2025 21:06:28 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 111
Message-ID: <slrn104j0nc.7sc.anthk@openbsd.home>
References: <1021ii4$3327l$6@dont-email.me>
Injection-Date: Wed, 11 Jun 2025 23:06:28 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="7749879406b2d491b801e32502909428";
	logging-data="2324040"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/JbXo5EElp5/s9B4UWe0Xm"
User-Agent: slrn/1.0.3 (OpenBSD)
Cancel-Lock: sha1:5kdxYud+1/D+svVRHWZTIi4ehnU=

On 2025-06-07, olcott <polcott333@gmail.com> wrote:
> The execution trace of HHH1(DDD) shows the divergence
> of DDD emulated by HHH from DDD emulated by HHH1.
>
> int main()
> {
>    HHH1(DDD);
> }
>
> Shows that DDD emulated by HHH and DDD emulated by
> HHH1 diverges as soon as HHH begins emulating itself
> emulating DDD.
>
> *From the execution trace of HHH1(DDD) shown below*
> DDD emulated by HHH1              DDD emulated by HHH
> [00002183] push ebp               [00002183] push ebp
> [00002184] mov ebp,esp            [00002184] mov ebp,esp
> [00002186] push 00002183 ; DDD    [00002186] push 00002183 ; DDD
> [0000218b] call 000015c3 ; HHH    [0000218b] call 000015c3 ; HHH
> *HHH1 emulates DDD once then HHH emulates DDD once, these match*
>
> The next instruction of DDD that HHH emulates is at
> the machine address of 00002183.
>
> The next instruction of DDD that HHH1 emulates is at
> the machine address of 00002190.
>
> 00002183 != 00002190
>
> _DDD()
> [00002183] 55             push ebp
> [00002184] 8bec           mov ebp,esp
> [00002186] 6883210000     push 00002183 ; push DDD
> [0000218b] e833f4ffff     call 000015c3 ; call HHH
> [00002190] 83c404         add esp,+04
> [00002193] 5d             pop ebp
> [00002194] c3             ret
> Size in bytes:(0018) [00002194]
>
> _main()
> [000021a3] 55             push ebp
> [000021a4] 8bec           mov ebp,esp
> [000021a6] 6883210000     push 00002183 ; push DDD
> [000021ab] e843f3ffff     call 000014f3 ; call HHH1
> [000021b0] 83c404         add esp,+04
> [000021b3] 33c0           xor eax,eax
> [000021b5] 5d             pop ebp
> [000021b6] c3             ret
> Size in bytes:(0020) [000021b6]
>
>   machine   stack     stack     machine    assembly
>   address   address   data      code       language
>  ========  ========  ========  ========== =============
><main is executed>
> [000021a3][0010382d][00000000] 55         push ebp      ; main()
> [000021a4][0010382d][00000000] 8bec       mov ebp,esp   ; main()
> [000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD
> [000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call HHH1
></main is executed>
>
> New slave_stack at:1038d1
> Begin Local Halt Decider Simulation   Execution Trace Stored at:1138d9
>
><DDD emulated by HHH1>
> [00002183][001138c9][001138cd] 55         push ebp      ; DDD of HHH1
> [00002184][001138c9][001138cd] 8bec       mov ebp,esp   ; DDD of HHH1
> [00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD
> [0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
></DDD emulated by HHH1>
>
> New slave_stack at:14e2f9
> Begin Local Halt Decider Simulation   Execution Trace Stored at:15e301
>
><DDD emulated by HHH>
> [00002183][0015e2f1][0015e2f5] 55         push ebp      ; DDD of HHH[0]
> [00002184][0015e2f1][0015e2f5] 8bec       mov ebp,esp   ; DDD of HHH[0]
> [00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD
> [0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
><DDD emulated by HHH>
>
> New slave_stack at:198d21  DDD emulated by HHH
> *This is the beginning of the divergence of the behavior*
> *HHH is emulating itself emulating DDD, HHH1 never does that*
>
><DDD emulated by HHH emulating itself>
> [00002183][001a8d19][001a8d1d] 55         push ebp      ; DDD of HHH[1]
> [00002184][001a8d19][001a8d1d] 8bec       mov ebp,esp   ; DDD of HHH[1]
> [00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD
> [0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
></DDD emulated by HHH emulating itself>
>
> Local Halt Decider: Infinite Recursion Detected Simulation Stopped
> HHH returns to caller
>
><DDD emulated by HHH1>
> [00002190][001138c9][001138cd] 83c404     add esp,+04 ; DDD of HHH1
> [00002193][001138cd][000015a8] 5d         pop ebp     ; DDD of HHH1
> [00002194][001138d1][0003a980] c3         ret         ; DDD of HHH1
></DDD emulated by HHH1>
>
><main is executed>
> [000021b0][0010382d][00000000] 83c404     add esp,+04 ; main()
> [000021b3][0010382d][00000000] 33c0       xor eax,eax ; main()
> [000021b5][00103831][00000018] 5d         pop ebp     ; main()
> [000021b6][00103835][00000000] c3         ret         ; main()
></main is executed>
> Number of Instructions Executed(352831) == 5266 Pages
>

Lean Lisp first, ideally with Scheme. Go get Concrete Abstractions
and learn about recursivity and taill call optimization.