4

What do you think, is C programming language low or high level?

There are some information, in one is said that C is low level, and another C is high level? When I read book of Dennis Ritchie and Brian Kernighan, there is written "C is a relatively "low level" language"?

5
  • 4
    the "level" of a language is relative. C is high-level compared to assembly but low leveled compared to javascript. Nov 20, 2015 at 13:59
  • 2
    see also: Why is C still in the category of High Level Language?
    – gnat
    Nov 20, 2015 at 14:02
  • C is by far the most low-level programming language of all general purpose, architecture-independent programming languages in existence. The only thing which is lower level than C is Assembly, which is not architecture-independent.
    – Mike Nakis
    Nov 20, 2015 at 14:02
  • There is no official definition, but historically assembler/machine code was considered low-level and any language more abstracted was high-level. But C is one of the high-level languages which is closest to the machine level, which is why it is sometimes designated "mid-level", while scripting languages like Python have sometimes been designated "very high level". But these are all informal categories and somewhat subjective.
    – JacquesB
    Nov 20, 2015 at 14:17
  • ya know. i'm kinda like Goldilocks and i think that C is "just right". Nov 20, 2015 at 20:08

1 Answer 1

16

It's completely context dependent.

  • Compared to PHP, C is low level;
  • Compared to x86 assembly, C is high level;
  • Compared to the instructions I used to construct this universe in which you reside, C is so high level you can barely see it.

It depends who you're talking to, and about what, as to what the answer is. C is a bit of a unique beast, though, because (as Mike pointed out in comments), it's the lowest-level of all general-purpose, architecture-independent programming languages, and these are the languages you're most likely to encounter in modern reality. So, in practice, you're likely to hear C being deemed "low level" unless you're talking to someone who fiddles bits in registers with a soldering iron for a living.

8
  • 1
    In regards to your third point: Wat? I'm pretty sure C is lower level than Greenspunned Perl. I mean, sure since Lisp machines were a thing, certain implementations of Lisp could be considered lower level than C, but I don't think a Lisp interpreter cobbled together in Perl would count.
    – 8bittree
    Nov 20, 2015 at 14:18
  • 2
    @8bittree Are you saying God created the universe using Lisp? No argument there. Nov 20, 2015 at 14:21
  • @RobertHarvey That's my understanding of Mr. Munroe's vision. And it seems reasonable enough.
    – 8bittree
    Nov 20, 2015 at 14:24
  • Some C implementations process a low-level language. Others implement a dialect which uses low-level syntax but than generates a high-level program whose behavior will only match the semantics implied by the syntax if the code doesn't need do exploit low-level features.
    – supercat
    Feb 10, 2017 at 19:32
  • The C language can be platform dependent. It depends what the compiler offers you. So for example the use of intrinsics means your C code can target a particular CPU where you choose the instruction and, implicitly, the type of register you want to use.
    – cdcdcd
    Nov 14, 2018 at 16:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.