News for hackers. Stuff that matters.
Re:The compiler was supposed to end programming too by jacquesm on Wednesday October 21, 2026 @03:16PM (#50186066)
I did say barring optimizations to ensure that that was taken into account. The link is a deterministic one, which is what matters. If the program would do something you did not program you'd see that as a compiler bug.
Re:The compiler was supposed to end programming too by nostrademons on Wednesday October 21, 2026 @03:27PM (#50186236)
There's a whole rats nest of undefined behavior (at least in languages like C, C++, PHP, and Perl) where it's very easy to write a syntactic utterance whose output is not deterministic, and the usual outcome is "your machine is now pwned". A significant portion of the Internet was taken offline this morning because of one, with numerous HN stories documenting it.

Newer languages consider this to be a misfeature, and have taken pains to define far more of the language semantics outright, even if the definition is simply "This is a compile error" or "This is a panic." It's interesting that we're now going back the opposite way with LLMs, with their ability to generate code that does something for any natural-language prompt being a major selling point.

Re:The compiler was supposed to end programming too by troauei on Wednesday October 21, 2026 @03:43PM (#50186505)
Yes, but only a portion of the languages are undefined behavior. The rest is fairly predictable.

Plus, these undefined behaviours are well-documented, even if easy to miss.

Whereas in LLMs, the whole thing is undefined behavior.

Re:The compiler was supposed to end programming too by kazinator on Wednesday October 21, 2026 @07:07PM (#50188910)
> Whereas in LLMs, the whole thing is undefined behavior.

Bingo!

When you exploit undefined behavior using a compiler, what do you do? You verify that its output, the object code, does what you intended with the undefined code. Or else you at least have to test the heck out of it.

Gee, what is all that similar to ...

Re:The compiler was supposed to end programming too by pjmlp on Wednesday October 21, 2026 @03:22PM (#50186150)
Yeah, but only toy compilers don't do optimizations.
Re:The compiler was supposed to end programming too by Veserv on Wednesday October 21, 2026 @03:37PM (#50186405)
Which is a strawman. They are clearly attempting to say that a compiler is supposed to generate a program that is semantically identical to the source code.

All observable and defined side effects should be identical otherwise you have a compiler bug. Optimizations that are not generically semantics preserving may be used, but should only be used where the program is semantically identical for your use case otherwise you have incorrectly used the options available in your compiler.

Re:The compiler was supposed to end programming too by pjmlp on Wednesday October 21, 2026 @03:50PM (#50186613)
But it isn't, anything goes as long the "as if" rule is kept.

For example a JIT compiler can produce completely different kinds of machine code depending on the application data that was processed, and the overall machine workload.

Re:The compiler was supposed to end programming too by Veserv on Wednesday October 21, 2026 @04:01PM (#50186803)
"as if" is what semantically identical means. As I further clarified: "All observable and defined side effects should be identical otherwise you have a compiler bug."

The output program does what the input source code does. The abstraction is a precise translation and non-leaky, it just admits multiple possible internals. That does not make the translation any less precise.

Re:The compiler was supposed to end programming too by pjmlp on Thursday October 22, 2026 @03:22AM (#50192261)
Yes, and just like with human intelligence offshoring projects, if the delivered microservice e.g. always sends the right email content when a notification lands, no one cares about the garbage underneath.