"C Is Not a Low-level Language"

Lambda the Ultimate - Programming Languages Weblog 2018-07-03

Summary:

David Chisnall, "C Is Not a Low-level Language. Your computer is not a fast PDP-11.", ACM Queue, Volume 16, issue 2.

"For a language to be "close to the metal," it must provide an abstract machine that maps easily to the abstractions exposed by the target platform. It's easy to argue that C was a low-level language for the PDP-11. ... it is possible to make C code run quickly but only by spending thousands of person-years building a sufficiently smart compiler—and even then, only if you violate some of the language rules. Compiler writers let C programmers pretend that they are writing code that is "close to the metal" but must then generate machine code that has very different behavior if they want C programmers to keep believing that they are using a fast language."

Includes a discussion of various ways in which modern processors break the C abstract machine, as well as some interesting speculation on what a "non-C processor" might look like. The latter leads to thinking about what a low-level language for such a processor should look like.

Link:

http://lambda-the-ultimate.org/node/5534

From feeds:

Gudgeon and gist » Lambda the Ultimate - Programming Languages Weblog

Tags:

Date tagged:

07/03/2018, 23:10

Date published:

07/03/2018, 23:09