C Is Not a Low-level Language: Your computer is not a fast PDP-11 (2018)
dl.acm.org
dl.acm.org
No useful outcomes are achieved through the debate. We learn nothing about a previously unknown capability of our technology or self structuring pointless taxonomy.
“Oh look a grammatically correct sentence.” is all this rises to.
Clicking the "past" link by itself won't find them.
C Is Not a Low-Level Language (2018) | 2 points | krykp | 22 days ago | 1 comments | https://news.ycombinator.com/item?id=43039172
C Is Not a Low-level Language (2018) | 293 points | bmer | 1 year ago | 396 comments | https://news.ycombinator.com/item?id=37897946
C Is Not a Low-level Language (2018) | 204 points | goranmoomin | 3 years ago | 192 comments | https://news.ycombinator.com/item?id=29702001
C Is Not a Low-Level Language (2018) | 3 points | brundolf | 4 years ago | 3 comments | https://news.ycombinator.com/item?id=26216369
C Is Not a Low-level Language (2018) | 343 points | goranmoomin | 5 years ago | 167 comments | https://news.ycombinator.com/item?id=21888096
C Is Not a Low Level Language (2018) | 15 points | classicsnoot | 5 years ago | 2 comments | https://news.ycombinator.com/item?id=21370954
"C is not a low-level language"
Uh, okay, then what is?
What are you comparing it to? Low-level/high-level is not a binary switch, it's a spectrum; exactly how many languages are lower-level than C and how many are higher?
That said with caches, branch predictors, register renaming, op-cracking, reordering, it's hard to say that assembly language is even low-level anymore because it's significantly abstracted over what is going to occur in the chip.
No. One of the main problems with the C user base is that there's a sizable number of developers who attach some sort of special status to C as the closest thing to assembly language and get incredibly belligerent with compilers when they fail to reproduce the exact assembly they were expecting. (Cryptographers angry that the compiler is getting rid of their constant-time tricks is one of the more notable cases, no matter how many times compiler vendors keep saying "stop using C if you want constant time, we don't guarantee it, we won't guarantee it").
> What are you comparing it to?
The reality is that C isn't meaningfully closer to assembly language than just about any other non-runtime based language--things like Fortran, Pascal, Rust, Zig, etc. are all around as good as C at representing machine hardware. Honestly, I'd say Rust is marginally better than C, by virtue of the fact that it allows multiple return types and lacks some of the implicit conversion inanities of C.
> Uh, okay, then what is?
The closest notable language you'll probably find is... LLVM IR (although I'd caveat that with LLVM IR isn't meant to actually be written by hand). LLVM does hew too close to the C abstract machine to be truly effective in this role, but it does make the crucial first step of having a distinction between registers and memory that is absent in all of the regular programming languages I'm aware of.