1

Calling C a "high level language" is complete bullshit. 99,9% of all code is written in C or higher level languages than C.

What a "high level language" is not objectively definable. So this arbitrary division divides programming languages in two halves of astronomically different sizes.

It may have been a good decision in the 70s but it's completely off nowadays. I propose to draw the line between languages with manual and languages with automatic memory management.

Comments
  • 0
    You are talking about the mother of all languages

    Be a programmer!
  • 0
    Bruder...
  • 2
    Anything that abstracts assembler, and machine instructions is a "high level lang".
  • 1
    How about "medium-level"?
  • 2
    You can code it while high so it's a good term
  • 0
    This is why there are stack layers, or for example OSI layers which makes the terms low and high level less arbitrary, but just relative.

    I guess you could technically say low level requires you to manage memory yourself and high level abstracts that, but it's still subjective.
  • 0
    One day OP's definition will be the generally accepted one.

    And then one day, a decade or two after that, the divide between high and low will be:
    static typing vs duck typing.
  • 1
    It is high level, its just unmanaged and unsafe,. with a very thin standard library. (Lacking containers, for instance).

    Other languages generally don't use C as an abstraction layer - i.e, they don't "compile" to C. Alhough some, such as Python, have interpreters written in C (CPython), Python code itself compiles to its own bytecode that doesn't have any direct relation to C.

    This is why C, as well the few other systems level languages (such as Rust) are not viewed as comprising a "level" ke assembly.
  • 1
    (continued)

    If interested in a more detailed explanation, yo may want to check out Structured Computer Organization by Tannebaum if you can find it. He defines a "hiearchy" at which the lowest level (level 0) compromises digital logic (i.e, gates and switches), the next level (1) descripts the microprogramming level, also sometimes called the "register-transfer level" (RTL), level 2 would be the machine language level (CPU instructions, i.e, MOV, ADD, SUB, etc.) , level 3 the OS, level 4 assembly language level and finally level 5 the high level languages. At each stage generally you have some time of translation from one language type to the next, though the the OS (level 3) is a bit of exception because in most circumstances it doesn't translate the instructions from level 4 (assembly), although because it does manage so many important things like memory, file systems and devices, it is enough to really justify its own level.
  • 0
    > higher level languages than C.
    COBOL?
Add Comment