3 ms·
Looks like C being Low-level or not needs a precise or formal definition of low-level language. Without that, it falls down to opinion.
by marcodiego 5y ago
Looks like C being Low-level or not needs a precise or formal definition of low-level language. Without that, it falls down to opinion.
- lproven 5y agoI am wondering if this excellent essay has surfaced again because I just tweeted it in reply to a popular Twitter account. I dispute your conclusion, and this is the reasoning, as expressed in the article: "High level" is tricky to define, because high is a relative assessment. But "low level" has a clear, agreed meaning: relatively similar to the machine's instruction set and architecture; close to the metal; comparable to assembly language. And the point of the article is that C is close to the architecture of a PDP-11. Modern CPUs are nothing like the PDP-11 and haven't been for a third of a century or more. C models the architecture of a 1970s minicomputer, and 21st century computers are nothing like 1970s minis – they just run similar OSes. If C is not close to the real architecture, then it's not low level. The fact that there's nothing mainstream which is closer is irrelevant. The C programming model is nothing like modern multicore SIMD superscalar 64-bit CPUs with out-of-order execution, branch prediction etc. If it isn't close to the metal, then it isn't low-level. C is neither any more. QED.