Vision for the D language - stabilizing complexity?
Ola Fosheim Grøstad via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jul 13 08:54:32 PDT 2016
On Wednesday, 13 July 2016 at 13:52:06 UTC, Chris Wright wrote:
> Undefined stuff *can* make sense. I want to mutate a data
> structure marked immutable. It's obvious what I want to have
> happen, it's just not obvious what will actually happen.
But the compiler is part of the abstract machine so it could
simply refuse to compile a program that isn't valid, or it could
define an extension that makes more programs valid.
One usually use the these terms:
«well-formed program»: a program that follows both the
syntactical rules and the required statically-detected semantic
rules.
«valid program»: a program that is well-formed and that also does
not lead to semantic errors that are required to be detected at
least at runtime (or in the case of undefined behaviour; errors
that are not required to be detected for performance reasons).
Since C/C++ is aiming at avoiding semantic run-time checks the
standard go with undefined behaviour instead. But there are
compilers that do more than that.
More information about the Digitalmars-d
mailing list