Re:C Is Not a Low-level Language (2018)
by astrange on Tuesday December 28, 2021 @02:09PM
(#29716829)
> Those exists in macro assemblers, for they are extremely thin abstractions, no thicker than jumping to a label instead of jumping to an absolute or relative address.
They’re much more than that because of type aliasing, which is what lets you write -> . = operations all day without each one literally being a memory access in asm.
Which kind of proves the point C doesn't provide all the necessary capabilities for a systems programming language.
As for macro Assemblers, IBM i one supports OOP constructs, so are OOP languages now low level?
Those exists in macro assemblers, for they are extremely thin abstractions, no thicker than jumping to a label instead of jumping to an absolute or relative address.
> no exposure to IO unless on a CPU with MMIO.
Well, since not all processors have I/O instructions (or dedicated I/O pins), the easiest way to implement portability is simply to not provide a direct access to them in the language, and let library functions handle it.