Liste des Groupes | Revenir à c theory |
On 09/05/2025 03:23, Keith Thompson wrote:That was not in the specification that he responded to.Richard Damon <richard@damon-family.org> writes:Depends on what you've picked up on.On 5/8/25 7:53 PM, olcott wrote:[...]>void DDD()>
{
HHH(DDD);
return;
}
We don't need to look at any of my code for me
to totally prove my point. For example when
the above DDD is correctly simulated by HHH
this simulated DDD cannot possibly reach its own
"return" instruction.
And thus not correctly simulatd.
>
Sorry, there is no "OS Exemption" to correct simulaiton;.
Perhaps I've missed something. I don't see anything in the above that
implies that HHH does not correctly simulate DDD. Richard, you've read
far more of olcott's posts than I have, so perhaps you can clarify.
>
If we assume that HHH correctly simulates DDD, then the above code is
equivalent to:
>
void DDD()
{
DDD();
return;
}
>
which is a trivial case of infinite recursion. As far as I can tell,
assuming that DDD() is actually called at some point, neither the
outer execution of DDD nor the nested (simulated) execution of DDD
can reach the return statement. Infinite recursion might either
cause a stack overflow and a probable program crash, or an unending
loop if the compiler implements tail call optimization.
>
I see no contradiction, just an uninteresting case of infinite
recursion, something that's well understood by anyone with a
reasonable level of programming experience. (And it has nothing to
do with the halting problem as far as I can tell, though of course
olcott has discussed the halting problem elsewhere.)
>
Richard, what am I missing?
>
Do you get that HHH's simulation is a /partial/ simulation? HHH is free
to simulate a few x86 instructions of DDD, and then simply abandon the simulation and return. Since such a simulation is obviously NOT equivalent to a direct call to DDD, and above you argue that it is, I'd say you've missed that.<snip>
The other thing to be aware of is that use of terminology "simulation" varies considerably between posters! This in turn affects what different posters consider a "correct" simulation.
PO is a (b)(c) guy. Since his HHH (more or less) simulates individual instructions correctly, PO claims HHH "correctly" simulates DDD. Others who are in (a) or (d) camps would say that HHH does not correctly simulate DDD, because either HHH performs a /partial/ simulation [for them an error in its own right] or because HHH decides nothalt when in fact PO's DDD halts._DDD()
Terminology usage is not a right/wrong issue, but the different possibilities maximise misunderstandings if not resolved. E.g. as I said PO's simulations are nearly always taken to be partial. Richard D. knows that, but as he is in (b) camp he points out that PO is lying every time he says "HHH correctly simulates DDD". PO then says RD is playing head games and challenges RD to point out an error, and so it goes on for hundreds of posts. To be fair, PO should be well aware that RD is in camp (a), but does nothing to resolve the terminology issue, so both posters get what they deserve!I resolved the terminology issue long ago and
FTR I am in the (b)(c) camp... I could explain why I think that's more logical, but that's going OT I think.--
Other posters have suggested that what you're missing is some variation of "once you answer PO's current question (about whether the simulation by HHH progresses as far as DDD's return) PO will go on to do something else wrong". Well, of course he will, but that's hardly something you're missing if he's not done it yet! :) I'd also say it's no reason not to answer PO's question honestly, acknowledging that he is talking about /partial/ simulations... The time to challenge future mistakes he will go on to make, is when he makes them.
Mike.
Les messages affichés proviennent d'usenet.