[OT] Keeping algorithm and optimisations separated

bearophile bearophileHUGS at lycos.com
Sun Sep 9 14:08:44 PDT 2012


renoX:

> one common issue when you optimize code is that the code 
> becomes difficult to read/maintain, but if you're trying to 
> process images there may be hope: Halide is a DSL (currently 
> embedded in C++) which keep the algorithm and the "optimization 
> recipe"(schedule) separated AND the performance can be similar 
> to hand-optimized C++ code.

Maybe some programming language of the future will contain ways 
to specify code at various levels, like that. I think that's a 
quite important but unsolved problem of the endavour of designing 
languages.

Today sometimes you see a complex function (or groups of related 
functions/methods) that is preceded by a comment that contains 
the pseudocode version of the algorithm implemented below.

[I suggested the idea of docpicture, to insert small images in 
doctexts (similar to ddoc comments of D functions), to help 
explain algorithms implemented inside the following function. 
Later the idea was implemented by someone else:
https://groups.google.com/forum/?hl=en&fromgroups=#!topic/comp.lang.python/ykGwWA0WKfc 
]

And one metric of progress in the history of computer language 
design is more and more content of the comments moved to code 
that a compiler/interpreter is able to understand (there are 
practical limits to this, this partially explains why today 
everybody isn't programming in Idris or ATS that support 
dependent types: sometimes saying some things to the compiler is 
not worth the effort).

The idea of writing code in a high level and later specify a 
second or third layer of optimization on it, keeping the whole 
thing DRY (don't repeat yourself) seems an important progress for 
a future language.

Bye,
bearophile


More information about the Digitalmars-d mailing list