Inherent code performance advantages of D over C?
bearophile
bearophileHUGS at lycos.com
Fri Dec 6 15:25:43 PST 2013
Paulo Pinto:
> That is why most safe systems programming language compilers
> allow disabling bounds checking. :)
Disabling bounds checking (BC) is an admission of defeat (or just
of practicality over technical refinement).
Various languages approach the situation in different ways, some
examples:
- Python has BC, and it can't be disabled.
- Java has BC, but with the large engineering efforts done on the
OracleVM, some array accesses are proved to be in-bound, and
removed (some BC is removed thanks to inlining). The effect of
this optimization is visible for matrix-processing code, etc.
(It's not a large effect, but it's useful, and it could be handy
to have in D too).
- D has BC, but you can disable it for each compilation unit.
- Ada is like D, but its stronger typing (and the strongly typed
style most Ada programs are written! because it's also a matter
of how you use a language) allows the compiler to optimize away
some BC with very simple means, without the need for the analysis
done by the OracleVM.
Bye,
bearophile
More information about the Digitalmars-d
mailing list