Memory allocation purity

via Digitalmars-d digitalmars-d at puremagic.com
Mon May 19 13:56:58 PDT 2014


On Monday, 19 May 2014 at 18:55:57 UTC, Steven Schveighoffer 
wrote:
> On Mon, 19 May 2014 14:49:41 -0400, Ola Fosheim Grøstad 
> <ola.fosheim.grostad+dlang at gmail.com> wrote:
>
>> On Monday, 19 May 2014 at 18:33:55 UTC, Steven Schveighoffer 
>> wrote:
>
>>> Then you should have no problem producing an example, right?
>>
>> I did. Besides, I think language constructs should be proven 
>> sound a priori, not post mortem...
>
> Let me cut to the chase here. I haven't seen it. Let's not go 
> any further until you can produce it.

I've given several examples, but I oppose the general attitude. 
Language constructs should be formally proven correct. Proving a 
program to be correct is usually not worth it, but for individual 
language construct it is indeed possible and necessary, 
optimization depends on it. This is also why you should strive 
for a small set of primitives and build high level constructs by 
lowering them to the minimal language. You can then limit your 
proof to the primitives.

The basic idea in generic programming is that you can implement 
the full blown generic algorithm, plug in the parts that can vary 
and let the optimizing compiler boil it down into an optimized 
tight machine language construct. The programmer should not be 
required to "deduce" what will happen when he plugs stuff into 
the generic algorithm.

If optimization change semantics you will risk efficient 
algorithm implementations either going wrong or into an infinite 
loop. Not at all suitable for a programming language that aims 
for system level efficiency and generic programming.


More information about the Digitalmars-d mailing list