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