Porque é que o C é chamado uma linguagem de assembleia?
Deixemos de dispensar vários equívocos.
- C não é chamado de "uma linguagem assembly" ou "uma linguagem assembly" por qualquer pessoa que realmente conheça C e conheça pelo menos uma linguagem assembly. Se você realmente conhece C e pelo menos uma linguagem assembly, a distinção é cristalina.
- C é compilada, não montada. O código da linguagem assembly é compilado por um assembler. O código em C é compilado por um compilador. (Há alguns intérpretes em C por aí, mas eles são outliers.)
- C é uma linguagem de alto nível.
- C não é uma "linguagem assembly portátil" ou qualquer tipo de linguagem assembly. É uma linguagem portátil de alto nível, se usada com disciplina. Na verdade é muito fácil escrever código não-portátil em C, se você não sabe quais disciplinas são necessárias para escrever código portátil.
- C não é uma "linguagem de baixo nível". Linguagem de máquina e linguagem assembly são linguagens de baixo nível.
- enquanto C (e algumas outras linguagens) permitem que você mergulhe na linguagem assembly inline, isso não muda o fato de que C é uma linguagem de alto nível. C com alguma linguagem assembly misturada é apenas isso...uma mistura de C e linguagem assembly. C pode ser usado para "programação de baixo nível", mas C não é uma linguagem de baixo nível.>li>K&R estado no seu prefácio para a linguagem de programação C que "C não é uma linguagem de 'muito alto nível', " e mais tarde na introdução, eles declaram que C é uma linguagem de "relativamente 'baixo nível'". As palavras-chave aqui são "muito" e "relativamente". C é uma linguagem de programação de propósito geral, de alto nível, que aparece no extremo inferior do espectro da linguagem de alto nível. É de nível inferior em comparação com algumas outras linguagens de alto nível, mas ainda é uma linguagem de alto nível.
- C não é uma "linguagem de nível médio" ou uma "linguagem de nível médio". Estes termos são inventariáveis e são desnecessariamente enganosos. Instrutores, livros, vídeos e websites pegaram esses termos e os propagaram. Nós não precisamos de um passo médio confuso entre línguas de baixo nível e línguas de alto nível. A linha entre alto e baixo é cristalina, se você tiver escrito código não trivial em C e em pelo menos uma linguagem assembly.>li>C é uma "linguagem de programação do sistema". Na verdade, é para isso que ela foi originalmente projetada. Isso não a limita apenas às tarefas de programação do sistema, mas é perfeitamente adequada para elas.
Sei que isso é mais do que você pediu, mas recentemente encontrei muita desinformação sobre esse ponto, então pensei em tentar esclarecer um pouco as coisas.
Artigos semelhantes
- A linguagem da assembleia é mais poderosa do que uma linguagem de alto nível? Porquê?
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Quais são os melhores temas para se falar numa assembleia matinal?
- Qual é a diferença entre uma linguagem de montagem e uma linguagem de alto nível?