RE: C Programming Discussion 06-24-2014, 07:12 AM
#11
(06-24-2014, 06:42 AM)ArkPhaze Wrote:Quote:but for decades it was a high-level language
Sure, but things change. It's relativity arguably. C is the abstract layer of most of the common languages today, if not nearly all of them, so if this was a spectrum, C would fit in the middle, even though it is not a low level language. Think about human readability here. C provides low level access still, yet it doesn't contain most of the junk and clutter that other languages like C++ have wrapped around it. This in concept is the same as C being a language that allows us to pass off executable code in which the processor can understand without actually writing it, other languages such as Python allow us to more easily write code that was written in C as the back-end, without actually writing in C. Python is much more legible to the non-programmer than C.
Read this to see what I'm talking about: http://stackoverflow.com/questions/34680...difference
C supports inline assembly too, so there's low level access right there.
Just because C isn't low level directly, doesn't make it high level. Back then, there weren't as many programming languages, but this evidently expanded in more recent times. Hence why people suggest mid-level languages now. It's a spectrum that more accurately allows us to identify programming languages than to just add a meaningless label to them because a language isn't ASM and thus it must be 'high level'.
just because C is lower than the rest of them, doesnt make C low-level. it just makes it lower on the ladder of high level languages.
asm can be done inline in C/C++/Objective C afaik, and probably others as well, that doesnt really make them low level either.
the mere act of being an abstraction layer for other high level languages does not make it low-level either. the main point of difference is that low level languages interact directly with the hardware, high level languages dont. i conceded that you might consider it mid-level language merely because you have limited access, such as direct memory access.

![[+]](https://sinister.ly/images/modern/collapse_collapsed.png)
![[Image: Free_Logo_autonomous..png]](https://dl.dropboxusercontent.com/u/18833908/Free_Logo_autonomous..png)