DEV Community


Discussion on: Is C still a high level language?

aetelani profile image
Anssi Eteläniemi

It's high level at least from compiler point of view. It's just not a garbage (collected) like most languages that could be described as frameworks.

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.

pentacular profile image

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.