Muitos dos livros didáticos sobre a linguagem de programação C dizem que C é uma linguagem de programação de alto nível, mas muitos dos tutores on-line dizem que C também é uma linguagem de programação de nível médio. Por que é assim?
programming-languages
c
high-level
CodeIt
fonte
fonte
Respostas:
Historicamente, tudo o que abstrai sobre o código de montagem era chamado de alto nível. C certamente faz isso. Essa definição também é relativamente clara, em contraste com o que se segue.
Com o tempo, criamos mais e mais linguagens de programação e inventamos mais e mais abstrações e ferramentas. Comparada com, digamos, Python, a linguagem C é positivamente primitiva em riqueza semântica e nível de abstração sobre o hardware. Com isso em mente, muitas pessoas acham enganoso chamar C de alto nível, quando há uma variedade de idiomas que estão muito acima do hardware.
Portanto, agora "alto nível" geralmente significa "abstrai muito sobre hardware" e "baixo nível" significa "abstrai pouco". Esta é a definição que seus tutores usam. Porém, nem todos concordam, e textos antigos não adotam magicamente a nova terminologia; portanto, você ainda vê o uso antigo de "alto nível" (sob o qual C é alto) flutuando. Lembre-se de que muitos bons livros em C são basicamente edições mais recentes de livros lançados há vinte anos.
fonte
É uma linguagem de nível superior ao código de máquina (assembly), que é o ponto de vista de onde vêm os livros e tutoriais de programação C.
Nesse sentido, é uma linguagem de programação de alto nível.
No entanto, ele ainda está muito próximo do hardware - muito mais que outras linguagens mais modernas (Java, C # e outras) - quando visto desse ponto de vista, é uma linguagem de programação de nível médio.
fonte