Opportunity: Software Execution Time Determinism

Nordlöw via Digitalmars-d digitalmars-d at puremagic.com
Wed Apr 13 08:50:40 PDT 2016


I'm currenly in an industry with extremely high demands on 
software determinism, both in space and time (hard realtime).

My conclusion so far is that most safety-critical industries 
today are in desperate need of better (any) language support for 
guaranteeing determinism, especially time. The amount of 
time/money spent/wasted on complicated extra tooling processes 
and tests to assure time-determinism is just insane, at least in 
the avionics industry.

If D was to attack this problem in the same systematic way it can 
restrict execution behaviour with `@safe pure nothrow @nogc` D 
would have yet another killing feature in its feature pack.

I'm aware of the lack of absolute time-determinism in the CPU 
architectures of today. But the industry still uses such 
architectures, sometimes with memory-caches disabled and 
forbidding of multi-core/cpu in its products.

Have anybody though about adding support for this in D? I assume 
it would have to integrate with the backend in various 
complicated ways. Both the frontend and the backend would need to 
have options for generation of code that promotes deterministic 
execution over smallest average time-execution (which is 
currently the default optimization route taken by most compilers 
and library algorithms).

Are there any languages or compilers that tries to attack this 
problem?

Note that this problem is highly related to concept of 
"cyclomatic complexity".

See also:

https://en.wikipedia.org/wiki/Cyclomatic_complexity


More information about the Digitalmars-d mailing list