O que é programação de alto nível?
A programação de alto nível envolve escrever um programa de computador em uma linguagem que impede o programador de lidar diretamente com o hardware do computador específico que está sendo programado. Essa abstração permite que o programador se concentre mais no design, fluxo e funcionalidade do programa e menos na organização dos recursos básicos do sistema para atingir esses objetivos. Uma linguagem de programação de alto nível pode lidar com gerenciamento de memória ou entrada e saída de uma maneira que o programador precise entender apenas o conceito e não as especificidades de hardware de um determinado sistema. Em contraste com a programação de alto nível, há uma programação de baixo nível, na qual há pouca ou nenhuma separação entre o código do computador gravado e as ações que o computador executa.
O desenvolvimento de linguagens de programação de alto nível foi uma resposta à necessidade de arquivos de código-fonte legíveis por humanos que pudessem ser facilmente compreendidos e modificados. Ao usar soluções de linguagem natural, o código-fonte de alto nível se torna muito mais legível do que a linguagem assembly ou outras linguagens de máquina. À medida que o tamanho dos programas de computador progredia, a praticidade de escrever programas inteiros em idiomas de baixo nível se tornava menos viável.
Em troca da programação em uma linguagem legível por humanos e que não requer conhecimento de baixo nível de hardware, existe um conceito conhecido como penalidade de abstração. Isso descreve os requisitos crescentes em poder de processamento, uso de memória e outros tipos de sobrecarga necessários para executar o programa final. Isso vale especialmente para linguagens interpretadas que precisam executar um intérprete para executar o programa, exigindo essencialmente que dois aplicativos tenham que ser executados ao mesmo tempo.
Linguagens compiladas são linguagens de programação de alto nível nas quais os arquivos de origem legíveis são transformados em código de máquina que o computador pode ler. Embora uma linguagem compilada sofra menos penalidade de abstração do que uma linguagem interpretada, ela ainda conta com bibliotecas pré-compiladas e funções de compilador automatizadas. Esses elementos podem prejudicar a otimização de um programa complexo no qual o desempenho é vital.
O uso de linguagens de programação de alto nível também facilitou a programação amigável. Isso é facilitado pela facilidade de adicionar elementos padronizados a uma interface do usuário que a maioria dos idiomas de alto nível fornece. Em vez de desenvolver código personalizado para um sistema de janelas ou botão de interface sempre que necessário, elementos familiares podem ser facilmente colocados em uma interface com apenas algumas linhas de código. Isso permite programas com os quais os usuários finais podem aprender mais facilmente ou familiarizar-se imediatamente.
O uso do termo "programação de alto nível" é relativo à experiência do programador. Existem alguns idiomas intermediários que antes eram considerados de baixo nível, mas agora não são. Da mesma forma, alguns idiomas de alto nível compartilham aspectos com idiomas de baixo nível, obscurecendo a linha entre eles.