March 17, 2016
On Saturday, 5 December 2015 at 20:48:16 UTC, Andrei Alexandrescu wrote:
> Then what do we do with more complex relationships like O((m + n) log n) etc.

What about a compile-time expression tree similar to how, for instance, `BaseUnit`, `ScaledUnit`, (and suggestedly `ShiftedUnit` and `LinearUnit`), are defined and used in David Nadlinger's std.units?
March 17, 2016
On Friday, 4 December 2015 at 01:27:42 UTC, Andrei Alexandrescu wrote:
> These complexities must be reflected in the name of the primitives. Or perhaps it's okay to conflate a couple of them. I know names are something we're awfully good at discussing :o). Destroy!
>
>
> Andrei

I'm currently sitting in a software sector with one of the most demands on software stability and predictability there is. A key issue here is time-deterministic execution. I've seen no language that addresses this problem. What about adding yet another code qualifier, say @deterministic, that either

- forbids non-time-determinstic execution paths such as `if-statements` or perhaps better
- makes the compiler generate code that strives to be as deterministic as possible, for instance executing all brances of a conditional statement.

and of course checking this transitively over function calls. This would have to take into account direct or in-direct recursions which might become complicated.

I'm of course also aware of the inherent variations in microcode execution time for most CPU architectures of today. Despite this fact, safety-critical systems (in for instance aerospace) uses the architectures and are in need of tools that can do as good as currently possible at least at the source code level.

Destroy!
2 3 4 5 6 7 8 9 10 11 12
Next ›   Last »