Re: Every D(D) simulated by H presents non-halting behavior to H ###

Liste des GroupesRevenir à l c 
Sujet : Re: Every D(D) simulated by H presents non-halting behavior to H ###
De : mikko.levanto (at) *nospam* iki.fi (Mikko)
Groupes : comp.theory
Date : 22. May 2024, 09:39:26
Autres entêtes
Organisation : -
Message-ID : <v2k7fe$12vjm$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
User-Agent : Unison/2.2
On 2024-05-21 13:54:09 +0000, olcott said:

On 5/19/2024 8:48 AM, Mikko wrote:
On 2024-05-19 12:34:08 +0000, olcott said:
 
On 5/19/2024 2:53 AM, Mikko wrote:
On 2024-05-18 15:34:36 +0000, James Kuyper said:
 
On 5/18/24 09:02, Mikko wrote:
On 2024-05-17 17:14:01 +0000, olcott said:
 I recommend ignoring olcott - nothing good ever comes from paying
attention to him.
 
On 5/17/2024 5:53 AM, Mikko wrote:
On 2024-05-16 14:50:19 +0000, olcott said:
 
On 5/16/2024 5:48 AM, Mikko wrote:
On 2024-05-15 15:24:57 +0000, olcott said:
...
typedef int (*ptr)();  // ptr is pointer to int function
00 int H(ptr x, ptr x);
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 }
 Can you find any compiler that is liberal enough to accept that?
 
 It has been fully operational code under Windows and
Linux for two years.
 If your compiler does not reject that program it is not a conforming
C compiler. The semantics according to C standard is that a diagnostic
message must be given. The standard does not specify what happens if
you execute that program anyway.
 
 It is not nit picky syntax that is the issue here.
The SEMANTICS OF THE C PROGRAMMING LANGUAGE SPECIFIES
 No D simulated correctly by any H of every H/D pair specified
by the above template ever reaches its own line 06 and halts.
 The standard allows that an program is executed but does not
specify what happens when an invalid program is executed.
 You've cross-posted this to comp.lang.c after a long-running discussion
solely on comp.theory. Presumably you're doing that because you want
some discussion about what the standard says about this code. For the
sake of those of us who have not been following that discussion on
comp.theory, could you please identify what it is that you think renders
this code invalid? Offhand, I don't see anything wrong with it, but I'm
far more reliable when I say "I see an error" than when I say "I don't
see an error".
 
Fully operational software that runs under Widows and Linux
proves that the above is true EMPIRICALLY.
 No, it does not. As the program is not strictly comforming
and uses a non-standard extension some implementation may
execute it differently or refuse to execute.
 Which non-standard extension does it use?
 The main question is whether both arguments of H on the line 00 can have
the same name.
 That was a typo that I did not believe when told because so may people
continue to lie about the behavior of D correctly simulated by H.
 How does the D that is correctly simulated by H different from any
D that is incorrectly simulated by H nor not simulated by H?
 
 I initially read that as nonsense.
My language quality is far from ideal, which may obscure my intended
meaning.

You are asking for the definition of correct simulation
that I have been providing for quite a while recently.
That was not my main intent. I wanted to know why your
statement

No D simulated correctly by any H of every H/D pair specified
by the above template ever reaches its own line 06 and halts.
exludes every unsimulated or incorrectly simulated D?

A c function is correctly simulated when its machine language
instructions are emulated with an x86 emulator in the order
that they are specified by the x86 machine language of this
c function.
Does "its machine language instructions" mean all executed instructions
until the progam terminates? Or from the start of the program until
there is no reason to continue? Or from some point to some other point?

For non-terminating functions we can only correctly
simulate N machine language instructions.
But does you definition regard that partial simulation as "correct
simulation"?

For the H/D pair we can simulate 1 to N instructions of D that
results in 0 to M recursive simulations of H simulating itself
simulating D.
But is this kind of recursive simulation "correc"? Does "correct"
apply to ("correctly" or otherwise) simulated simulations? Does
correctness of simulation of simulation depend on the oorrectness
of simulated simulation?
--
Mikko

Date Sujet#  Auteur
21 Sep 24 o 

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal