As diferenças entre linguagens de programação de alto e baixo nível

Os humanos usam linguagens de programação para instruir o hardware de um computador.

As linguagens de programação

Uma linguagem de programação é qualquer linguagem com a qual humanos possam instruir computadores. Um programa é uma lista de instruções preparadas para serem entregues a um computador e executadas. Essencialmente, as instruções armazenam, movem e alteram valores na memória do computador. Esses valores podem ser interpretados por vários dispositivos, como monitores, alto-falantes, teclados, touch pads ou mouses, que fornecem formas de comunicação com o usuário.

O código da máquina

Uma linguagem de baixo nível é aquela que está próxima do básico do hardware do computador. A linguagem de nível mais baixo é o código de máquina, que o hardware entende diretamente e não requer interpretação ou tradução. O código da máquina é composto inteiramente de cadeias de números binários: os zeros e os famosos. Embora ele possa fazer tudo o que qualquer outra linguagem pode alcançar (na verdade, o restante das linguagens deve ser traduzido em código de máquina pelo interpretador), ele não é projetado para atender às necessidades do programador e requer conhecimento profundo do processador e os dispositivos do computador, além disso, é quase impossível para um ser humano lê-lo.

A linguagem assembly

A próxima linguagem de programação de nível "superior" é a linguagem de montagem, que é o código de máquina cujos códigos de instrução foram substituídos por comandos mais intuitivos. Por exemplo, o comando para colocar o valor 97 em um registrador de memória é chamado AL (em código de máquina seria "10110000 01100001") e em linguagem assembly seria "MOV AL, 97", que ainda é um comando enigmático mas é muito mais fácil de ler. Embora ainda seja ineficiente escrevê-lo e exija que o programador lide diretamente com o hardware do computador, ele é uma linguagem de nível mais alto do que o código da máquina porque é mais abstrato, ou seja, está mais próximo do programador.

Idiomas de alto nível

Programadores modernos raramente escrevem em linguagem assembly. Em vez disso, eles usam uma das muitas linguagens de alto nível, como C, Java ou Python, cujos programas chamados compiladores ou intérpretes podem ser convertidos em código de máquina. Essas linguagens impedem que o programador tenha que se envolver com o mundo físico do hardware e levá-lo à abstração lógica: em vez de mover valores hexadecimais pelos registradores de memória, o programador trabalha com variáveis ​​cujo conteúdo pode ser modificado, com loops que eles podem ser repetidos até que uma condição seja atendida, com instruções lógicas como IF, AND, THEN, OR e ELSE, entre outras ferramentas. Essas linguagens são projetadas para o programador, atendendo às maneiras pelas quais a potência máxima pode ser alcançada com o mínimo de dificuldade.

Comparações

Os idiomas de alto nível não recebem esse nome porque são "melhores" do que os idiomas de baixo nível. Às vezes, a capacidade de se comunicar diretamente com o processador do computador em linguagem assembly ou mesmo código de máquina pode resolver os problemas que as camadas de abstração de uma linguagem de alto nível podem dificultar. Uma linguagem de alto nível só pode lidar com um sistema operacional específico, como o Microsoft Visual Basic, ou com um determinado programa, como as "macros" de um processador de texto. Esses programas são muito úteis para qualquer pessoa que queira manipular o Windows ou o Word sem precisar saber como ele funciona, mas essa linguagem não seria útil para alguém que tenta escrever seu próprio programa e precisa de um idioma de nível inferior. Portanto, um programador escolhe uma linguagem dependendo do trabalho que precisa realizar.