O que são gerações de linguagem de programação?
As gerações da linguagem de programação são uma maneira de classificar as linguagens de programação do computador de acordo com a distância total do código de máquina real que é gerado e, de certa forma, com a facilidade de uso do programador. Existem três gerações de linguagem de programação geralmente aceitas e algumas cujas definições não estão claramente de acordo. Uma linguagem de programação de computador de primeira geração é um código de máquina direto, sem abstração. As linguagens de segunda geração são código de máquina abstraído, como linguagem assembly, vinculadas a uma arquitetura específica do sistema, mas são legíveis por humanos e precisam ser compiladas. As linguagens de terceira geração são a forma mais comum, incluindo linguagens padrão como C e Java®, enquanto as linguagens de quarta geração ou superiores têm definições variadas.
Quando as gerações das linguagens de programação foram criadas para descrever as linguagens, o termo era usado principalmente para indicar linguagens de terceira geração. Isso significa que os idiomas de primeira e segunda geração foram classificados apenas como tal para destacar os recursos dos idiomas de terceira geração. As quarta e quinta gerações de linguagens de programação foram amplamente usadas como termos em relação ao marketing de linguagens que estavam em desenvolvimento. No marketing e em algumas áreas acadêmicas, as gerações de idiomas com números mais altos são usadas de maneira não padrão para indicar que um idioma é mais novo ou possui mais recursos que outro.
A primeira das gerações da linguagem de programação indica o código da máquina. Isso significa escrever um programa como uma sequência de bytes ou, em casos extremos, bits que podem ser executados diretamente por um computador. Na maioria dos casos, isso se refere a um sistema que aceita entrada através de switches codificados ou outros mecanismos físicos.
As linguagens de programação de segunda geração são consideradas linguagens no estilo assembly. São linguagens escritas com códigos e comandos legíveis por humanos que ainda estão vinculados a arquiteturas de sistema específicas, mas apresentam um ambiente de desenvolvimento mais fácil e alguma abstração. As linguagens assembly nunca deixaram de ser usadas, a partir de 2011, e não são apenas extremamente poderosas, mas também podem ser usadas como instruções em linha em linguagens de programação de nível superior, tornando falsa a noção de que a geração de uma linguagem equivale à sua velocidade ou potência.
As linguagens de programação de terceira geração separaram o código do processador em uma extensão ainda maior, permitindo o desenvolvimento de códigos que usavam instruções mais legíveis. Além disso, foram desenvolvidos compiladores que poderiam transformar uma única linha de código em várias instruções de montagem em várias plataformas e, eventualmente, em dezenas ou mais instruções de código de máquina. Quase todas as linguagens de computador que podem compilar executáveis e bibliotecas binárias nativas são consideradas linguagens de terceira geração.
Em geral, uma linguagem de quarta geração é vista como uma linguagem destinada a usar algum tipo de linguagem de programação que é muito natural para o usuário. Também pode ser definido como uma linguagem que utiliza elementos visuais para construir o programa final. Uma terceira definição é uma linguagem de programação criada para uma finalidade específica, como uma linguagem de programação de banco de dados ou uma linguagem de rápido desenvolvimento de aplicativos (RAD).
Uma definição flexível de uma linguagem de computador de quinta geração é aquela que permite que um programador apresente ao computador um problema que ele tenta resolver. A maioria dos idiomas listados como sendo um idioma de quinta geração tem natureza principalmente acadêmica. Outras gerações de linguagem de programação, como a sexta e a sétima, foram usadas por desenvolvedores de linguagem comercial para fins de marketing.