Na terminologia de programação de computadores, linguagens de programação são frequentemente separadas em linguagens de "alto nível" e "baixo nível". A diferença entre as duas é uma questão de interação com hardware. Simplificando, linguagens de baixo nível residem "mais baixo" no sistema computacional, mais próximas da interação real com hardware. Linguagens de alto nível são abstraídas do hardware. O resultado dessa abstração pode resultar em código mais rápido de escrever e mais legível, mas menores benefícios de velocidade e menos acesso a recursos do sistema.
O que torna linguagens de alto nível diferentes de linguagens de baixo nível é o nível de abstração que uma linguagem tem dos recursos do sistema. Lidar com recursos do sistema diariamente pode se tornar lento e doloroso. Linguagens de alto nível foram criadas para lidar com isso gerenciando o sistema para o programador, libertando-a para completar tarefas mais avançadas enquanto ignora os detalhes minuciosos do sistema, como gerenciamento de memória. No entanto, isso tem uma desvantagem: um programador pode se encontrar em uma situação onde acesso ao sistema é necessário, e uma linguagem de alto nível não pode dar esse acesso. Uma linguagem de alto nível tipicamente não é adequada para programação de sistemas.
Linguagens de alto nível são tipicamente linguagens "interpretadas" em vez das linguagens de baixo nível "compiladas". "Interpretado" simplesmente significa que uma linguagem usa um interpretador que executa código-fonte linha por linha, em vez de compilar um arquivo binário. No entanto, interpretadores são frequentemente programas escritos em linguagens compiladas. Por causa disso, a linguagem interpretada — Python, como exemplo — só roda em cima do interpretador Python, que é escrito em C. Isso aumenta a sobrecarga de memória e tempo para programas interpretados, e eles frequentemente executam mais lentamente.
Uma aparente força do código de alto nível é sua portabilidade. Código de alto nível pode rodar em qualquer sistema que tenha o interpretador apropriado instalado. No entanto, quando um programa é compilado para um computador, ele leva em conta todo o ambiente daquele sistema em sua compilação. Uma linguagem interpretada já está abstraída do sistema a tal ponto que o programa interpretado não sabe nada sobre o sistema exceto pelo que o interpretador pode fornecer.
Devido à natureza das linguagens de alto nível, existem certas tarefas para as quais não são adequadas, ou pelo menos ainda não são adequadas. Sem acesso a recursos do sistema, desenvolver aplicações nativas rápidas do SO é difícil. Além disso, até desenvolver um sistema operacional se torna problemático. À medida que mais software se move online, este fato se torna menos preocupante, mas para uso comercial e industrial, linguagens interpretadas podem funcionar muito lentamente, ou muito longe da interação com hardware.
Tecnologia Eletrônica © [www.351231.com]