This evening I accidentally bumped into a chatbot, and I wondered
whether it was any good at C programming.
I was impressed when it solved Goldbach's Conjecture (admittedly for
small n) and 5-disc Hanoi, but then I thought back to a recent thread
here (which I have no intent of resurrecting), so I asked it if it could
have saved me a job if I'd only asked it a few hours ago.
Judge for yourselves!
[...]
On 30.05.2025 22:01, Richard Heathfield wrote:
This evening I accidentally bumped into a chatbot, and I wondered
whether it was any good at C programming.
I was impressed when it solved Goldbach's Conjecture (admittedly for
small n) and 5-disc Hanoi, but then I thought back to a recent thread
here (which I have no intent of resurrecting), so I asked it if it could
have saved me a job if I'd only asked it a few hours ago.
Incidentally we yesterday sat together in a beer garden, and for some computing problem a friend asked a bot for programs ("C" and Perl) to
a question. We got them and another friend was keen enough to test it.
It was practically unusable for the parameters due to its algorithmic complexity and for reduced parameter sizes it just didn't work. - The impression I got from looking at the code was that the bot might have
just picked some (maybe popular) public sources matching the question
and reproduces those in the answer. - Are the bots really capable to "develop" programs?
Probably not, as my C90/C99 test more or less illustrated. It
'knew' of a syntax rule, but failed to apply it correctly.
This evening I accidentally bumped into a chatbot, and I wondered
whether it was any good at C programming.
I was impressed when it solved Goldbach's Conjecture (admittedly for
small n) and 5-disc Hanoi, but then I thought back to a recent thread
here (which I have no intent of resurrecting), so I asked it if it could
have saved me a job if I'd only asked it a few hours ago.
Judge for yourselves!
I asked: "Write a program that is valid C90 but invalid C99."
ChatGPT said:
Certainly! To illustrate this, I'll write a C program that is valid in
C90 but invalid in C99. The key difference between C90 and C99 revolves around variable declaration and initialization.
Key Issue:
In C90, variables can only be declared at the beginning of a block (before any executable code).
In C99, variables can be declared anywhere within a block, even between statements.
C Program Example:
This program is valid in C90 but invalid in C99 because the variable x
is declared after executable code.
#include <stdio.h>
int main() {
printf("Hello, world!\n");
int x = 5; // Declaration after executable code (invalid in C99)
printf("x = %d\n", x);
return 0;
}
Why it’s Valid in C90:
In C90, all variable declarations must appear at the beginning of a block (before any code). This program would be valid in C90 because x is declared after the printf statement, but only the declaration of x
itself breaks the rule in C99.
Why it’s Invalid in C99:
In C99, variables can be declared anywhere within a block, even
after executable statements (not just at the beginning of a block). This
is why the above code would cause an error in C99, as the variable x is declared after a statement (printf).
Compilation Example:
If you compile this program with a C99 compiler (e.g., GCC), you'll get
an error similar to this:
error: variable 'x' declared after statement
To summarize:
C90 allows this style (declaration after code).
C99 does not allow it, so the program becomes invalid.
In article <101eqj0$13q67$[email protected]>,
Richard Heathfield <[email protected]> wrote:
Probably not, as my C90/C99 test more or less illustrated. It
'knew' of a syntax rule, but failed to apply it correctly.
You have put your finger on it. LLMs do not apply knowledge.
I asked: "Write a program that is valid C90 but invalid
C99."
ChatGPT said:
Certainly! To illustrate this, I'll write a C program that
is valid in C90 but invalid in C99.
Richard Heathfield:
I asked: "Write a program that is valid C90 but invalid
C99."
ChatGPT said:
Certainly! To illustrate this, I'll write a C program that
is valid in C90 but invalid in C99.
This AI cannot speak English and answer questions as they
are asked:
1. You did not ask it /whether/ it were possible to write
such a program, so its answer "Certainly" either makes
no sense, or means agreement to fullfil your request.
2. If it means agreement, the following sentence makes no
sense, for what is it going to illustrate (if not the
possiblity of such a program)?
3. And then it cocludes with a blatant tautology,
promising to "illustrate" the wrting of a C90-but-not-
C99 program, by writing a C90-but-not-C99 program.
Its diction is like that of schoolchild taught to start an
answers by repeating the question, but not understanding how
to do it.
After serious thinking Anton Shepelev wrote :
Richard Heathfield:
I asked: "Write a program that is valid C90 but invalid
C99."
ChatGPT said:
Certainly! To illustrate this, I'll write a C program that
is valid in C90 but invalid in C99.
This AI cannot speak English and answer questions as they
are asked:
1. You did not ask it /whether/ it were possible to write
such a program, so its answer "Certainly" either makes
no sense, or means agreement to fullfil your request.
2. If it means agreement, the following sentence makes no
sense, for what is it going to illustrate (if not the
possiblity of such a program)?
3. And then it cocludes with a blatant tautology,
promising to "illustrate" the wrting of a C90-but-not-
C99 program, by writing a C90-but-not-C99 program.
Its diction is like that of schoolchild taught to start an
answers by repeating the question, but not understanding how
to do it.
+ 1
Thanks to underlining it.
| Sysop: | Keyop |
|---|---|
| Location: | Huddersfield, West Yorkshire, UK |
| Users: | 715 |
| Nodes: | 16 (2 / 14) |
| Uptime: | 05:57:46 |
| Calls: | 12,100 |
| Calls today: | 8 |
| Files: | 15,003 |
| Messages: | 6,517,914 |
| Posted today: | 1 |