DEV Community

loading...

Discussion on: Is C still a high level language?

Collapse
gwutama profile image
Galuh Utama • Edited

Well the distinction is actually more than garbage collection as that only implies manual control of underlying RAM. With C you can also manipulate CPU registers, access CPU interrupts, call OS kernel functions to name a few. Because of this, you have access to all other underlying hardware (because they are all are connected to the same CPU) as much as the OS permits.

I always see it as a low level language in terms of how low it can access the underlying hardware.

My professor at my Uni would beg to differ though.

Collapse
pentacular profile image
pentacular

C has no concept of CPU registers, CPU interrupts, or OS kernel functions.
C has no access to the underlying hardware.

However, some C implementations provide extensions which do access these.

This is often in the form of inline assembly, and extensions to allow pointers to remain well defined when pointing outside of memory allocated within C.

Let us not confuse C with our preferred implementations of C.