DEV Community


Discussion on: Is C still a high level language?

type1j profile image
Jay Sistar

While that might be true, today, when it was made, C was meant to be a portable language. At some point, they stopped adding things that pretty much all hardware supports now (like SIMD), and they never did specify type sizes and structure packing rules. That was done in an effort to be either be more portable or more efficient, but not specifing things is what causes portability issues. Eventually, we got stdint.h, but packing rules are non-standard #pragmas, now.

Thread Thread
connellpaxton profile image

C is very portable, and I'm not argueing with that, I'm agreeing.
I'm saying that it has an abstract machine that goes over everything, which is the only way to make code portable from one arch to another.
Things like the IR of compilier (LLVM was just the first thing to come to mind) are by definition portable since they can be sent through different backends, and they are much more low level, and more deserving of the title "portable assembly"