Liste des Groupes | Revenir à c theory |
On 2024-05-17 17:14:01 +0000, olcott said:None of the code is flagged /std:c17 indicating that all
On 5/17/2024 5:53 AM, Mikko wrote:The standard allows that an program is executed but does notOn 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:>
>On 5/15/2024 3:18 AM, Mikko wrote:>On 2024-05-14 14:35:42 +0000, olcott said:>
>On 5/14/2024 4:52 AM, Mikko wrote:>On 2024-05-13 14:43:09 +0000, olcott said:>
>On 5/13/2024 4:14 AM, Mikko wrote:>On 2024-05-13 04:54:30 +0000, immibis said:>
>On 10/05/24 19:55, Alan Mackenzie wrote:>[ Followup-To: set ]And the halting problem is about Turing machines, anyway.
>
In comp.theory olcott <polcott333@gmail.com> wrote:
>
[ .... ]
>
I've tried out your much spammed code on GCC (see below). It is clear
you have never built or run this code, which ironically can't reach Line
06. It can't even reach line 00.
>Richard tried to get away with D never simulated by H as an example>
of D simulated by H:Message-ID: <v0ummt$2qov3$2@i2pn2.org>>
On 5/1/2024 7:28 PM, Richard Damon wrote:*That people say they know I am wrong yet will not show the detailed*>
*steps of how I am wrong indicates that they are probably liars*
You have said, or at least implied that your code fragment is runnable.
I think you are the liar, here.
>00 int H(ptr x, ptr x) // ptr is pointer to int function>
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 }
>
. These are the diagnostics generated by GCC:
>
Not necessarily. The same question can be asked about different machines.
The restriction to Turing machines is just one way to ensure that the
problem is well defined.
>
Well put. All computable functions even if written in C.
You still must ensure that the problem is well defined. With C there is
the problem that conforming C programs often fail to be strictly conforming.
If a program is not strictly conforming it may be interpreted as halting
by some implementation and non-halting or incorrect by another.
>
00 int H(ptr x, ptr x) // ptr is pointer to int function
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 }
>
One can correctly determine that every D simulated by H
never reaches past its own line 03.
That is not strictly conforming and hardly conforming at all.
>
What trivial syntactic error that has no effect
what-so-ever on the semantics do you believe remains?
A trivial sysntactic error means that the program is not strictly
conforming. It may be conforming if some liberal compiler accepts
it.
>A missing semi-colon?>
Normal semantics is that the program is not executed.
>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.
specify what happens when an invalid program is executed.
Fully operational software that runs under Widows and LinuxNo, it does not. As the program is not strictly comforming
proves that the above is true EMPIRICALLY.
and uses a non-standard extension some implementation may
execute it differently or refuse to execute.
Of course, in an implementation that refuses to execute thetypedef int (*ptr)(); // ptr is pointer to int function
simulation can not reach the line 06 or any other line.
Les messages affichés proviennent d'usenet.