Na terminologia da programação de computadores, as linguagens de programação são freqüentemente separadas em linguagens de "alto nível" e "baixo nível". A diferença entre os dois é uma questão de interação de hardware. Simplificando, as linguagens de baixo nível residem "mais abaixo" no sistema do computador, mais perto da interação real do hardware. Linguagens de alto nível são abstraídas do hardware. O resultado dessa abstração pode resultar em um código mais rápido e legível, mas em benefícios de menor velocidade e menos acesso aos recursos do sistema.
Abstração
O que torna as linguagens de alto nível diferentes das linguagens de baixo nível é o nível de abstração que uma linguagem tem dos recursos do sistema. Lidar com os recursos do sistema diariamente pode se tornar lento e doloroso. Linguagens de alto nível foram criadas para lidar com este problema, manipulando o sistema para o programador, liberando que ela conclua tarefas mais avançadas, enquanto ignora os detalhes minuciosos do sistema, como a memória gestão. No entanto, isso tem a desvantagem de que um programador pode se encontrar em uma situação em que o acesso ao sistema é necessário e uma linguagem de alto nível não pode fornecer esse acesso. Uma linguagem de alto nível normalmente não é adequada para programação de sistemas.
Vídeo do dia
Velocidade
Linguagens de alto nível são normalmente linguagens "interpretadas" em vez de linguagens de baixo nível "compiladas". "Interpretado" significa simplesmente que uma linguagem usa um interpretador que executa o código-fonte uma linha por vez, em vez de compilar um arquivo binário. No entanto, os intérpretes são frequentemente programas escritos em linguagens compiladas. Por causa disso, a linguagem interpretada - Python, por exemplo - só roda sobre o interpretador Python, que é escrito em C. Isso aumenta a memória e a sobrecarga de tempo para programas interpretados, e eles geralmente são executados mais lentamente.
Peculiaridades do sistema
Uma aparente força do código de alto nível é sua portabilidade. O código de alto nível pode ser executado em qualquer sistema que tenha o interpretador apropriado instalado. Porém, quando um programa é compilado para um computador, ele leva em consideração todo o ambiente desse sistema em sua compilação. Uma linguagem interpretada já está abstraída do sistema a tal ponto que o programa interpretado nada sabe sobre o sistema, exceto o que o intérprete pode fornecer.
Limites de Programação
Devido à natureza das linguagens de alto nível, existem certas tarefas para as quais elas não são adequadas ou, pelo menos, ainda não são adequadas. Sem acesso aos recursos do sistema, o desenvolvimento rápido de aplicativos nativos do sistema operacional é difícil. Além disso, até mesmo o desenvolvimento de um sistema operacional se torna problemático. À medida que mais software é movido online, esse fato se torna menos preocupante, mas, para uso comercial e industrial, as linguagens interpretadas podem funcionar muito lentamente ou muito distantes da interação do hardware.