News for hackers. Stuff that matters.
Re:C Is Not a Low-level Language (2018) by pjmlp on Tuesday December 28, 2021 @02:50AM (#29711478)
And structures, unions, pseudo-meta programming via the macro processors, no exposure to IO unless on a CPU with MMIO.

JOVIAL and Algol dialects were also designed for creating OSes and no one calls them low level.

Re:C Is Not a Low-level Language (2018) by wott on Tuesday December 28, 2021 @04:15AM (#29711904)
> And structures, unions, pseudo-meta programming via the macro processors,

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.

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.

Re:C Is Not a Low-level Language (2018) by pjmlp on Tuesday December 28, 2021 @07:52AM (#29713289)
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?

Re:C Is Not a Low-level Language (2018) by veltas on Tuesday December 28, 2021 @04:59AM (#29712127)
Also functions, loops, conditional statements, and arrays are considered abstractions.