Very interesting article at the IEEE ACM by David Chisnall.
In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn't been the case for decades.
(Score: 2) by dbe on Thursday May 24 2018, @06:00PM
If you look at architecture like ARM M0 (most arduino), the pipeline is still reasonable at 2 stages (http://microchipdeveloper.com/32arm:m0-pipeline) and the memory is still flat (no cache) with single thread.
So even for reasonably recent micro-controller C could still be considered low language with the author arguments.
Now try to even understand the behavior of a smaller loop hand-coded SSE/SIMD assembly to perform some vector computation on any modern CPU and it's nearly impossible to know why some instruction orders are faster than other and how to optimize cache usage to avoid cache-miss and other freebies that come with current CPU monsters...
-dbe