Antes de entrar nesse tema, é necessário entender o que é uma linguagem de programação. A gente ouve por aí: Java, SQL, C, C++, Assembly, Basic e muitas outras palavras relacionadas às linguagens de programação. Podemos dizer que a linguagem de programação é uma forma de determinarmos como um dispositivo deve trabalhar. É como se déssemos ordens para esses dispositivos que podem ser simples, como por exemplo, um carregador de pilhas ou mais complexos como um computador.
Cada linguagem de programação foi criada com algum objetivo, como por exemplo, facilidade de escrita, facilidade de manutenção, melhora da performance do dispositivo, etc.
Quando falamos em níveis, podemos dizer que uma linguagem de alto nível está muito mais próxima do programador do que do dispositivo, ou seja, é uma linguagem muito mais intuitiva. Existem linguagens onde é feito um diagrama e esse diagrama que nada mais é do que um desenho é convertido para uma linguagem de programação pré-selecionada. Essa é uma linguagem bem mais amigável ao programador devido à sua facilidade de entendimento. Um exemplo de linguagem de alto nível é a linguagem SDL (Specification Design Language).
Já numa linguagem de baixo nível, o programador vai sofrer, pois a linguagem é muito mais voltada ao dispositivo (processador, microcontrolador, etc.). Normalmente envolve números e letras que nada mais são que instruções diretas ao dispositivo. Por exemplo, a instrução “MOV 1, R0” diz para mover o valor “1” para o registrador “0” de um determinado processador. Como vemos, o programador tem que entender não só da linguagem em si, mas de toda a arquitetura do dispositivo que ele irá trabalhar. Um exemplo de linguagem de baixo nível é a linguagem ASSEMBLY.
Então, por quê não se usa sempre a linguagem de alto nível, já que ela é bem mais fácil de programar e dar manutenção?
Às vezes, essa opção não está disponível, pois a performance do dispositivo pode ser prejudicada se for usada uma linguagem de alto nível. Isso também tem a ver com memória: uma linguagem de alto nível, normalmente ocupa mais memória do que uma de baixo nível e aí o fator custo pode ser um obstáculo.
Por quê uma linguagem de baixo nível tem normalmente uma melhor performance do que uma linguagem de alto nível?
Por ser uma linguagem mais próxima ao dispositivo, são necessárias menos conversões dessa linguagem para a “linguagem de máquina” do dispositivo. Quando se escreve uma linguagem de alto nível, muitas conversões são necessárias para alcançar a “linguagem de máquina”, como essa geração é feita de forma automática, o código resultante acaba sendo maior do que se fosse escrito diretamente por um programador usando a linguagem de baixo nível.