Quais são as gerações da 4ª e 5ª linguagens de programação? Existem mais deles? [fechadas]

36

Como é frequentemente classificado na escola / faculdade, as linguagens de programação populares (C #, Java, C ++) são todas as linguagens de 3ª geração (com maior nível de abstração das partes físicas da máquina). Além disso, as linguagens de montagem são classificadas como segunda e linguagens de máquina como idiomas de primeira geração.

Inicialmente, eu pensava que o SQL deveria ser considerado como linguagem de quarta geração porque é mais abstrato e distante dos detalhes de looping e mais descritivo.

Acabei de descobrir que existem linguagens de 4ª geração e 5ª geração, mas qual é a base para qualquer linguagem de programação ou tecnologia ser categorizada como uma linguagem de 4ª ou 5ª geração?

Além disso, existem idiomas de sexta ou sétima geração também?

    
por Ali 05.01.2015 / 13:17
fonte

2 respostas

35

Visão geral de gerações simples: uma linguagem é a geração quando os blocos de construção são

  1. bits
  2. instruções
  3. Operações abstratas
  4. Objetos de domínio
  5. Metas do programa

Assim, até mesmo idiomas tão novos quanto o Google Go ou o Apple Swift ainda são solidamente de terceira geração. Regex é uma linguagem de correspondência de texto, o que a torna uma das primeiras linguagens de 4ª geração. Por essa definição, a 4ª geração se alinha de perto com as DSLs. No entanto, observe que idiomas como o C ++ podem ter tipos do mundo real, como Length e Weight , além de float e double , o que os torna híbridos da terceira a quarta geração.

As linguagens de quinta geração não existem praticamente, pois geralmente requerem um nível de inteligência artificial que nunca se materializou. O fato de que nós programadores ainda são necessários é exatamente porque os não-programadores não podem dizer a um computador com precisão suficiente o que exatamente eles querem.

    
por 05.01.2015 / 15:37
fonte
87

"n-geração de linguagem" é uma palavra de ordem. É um termo de marketing. Não há uma definição universalmente aceita do que exatamente define a “enésima geração” para n > 2. Algumas pessoas categorizam linguagens “scripting” como Perl ou Python como 4GLs, porque elas são muito mais de alto nível que C, enquanto outras acham que as características definidoras de 4GLs são que elas são específicas de domínio, por exemplo. SQL Alguns imbecis até acham que Java (uma linguagem de meados dos anos 90 cheia de orientação a objetos e coleta e reflexão de lixo) pertence à mesma categoria de “3GL” como Fortran (dos anos 50) e C (dos anos 70).

Uma categorização tão confusa como a "linguagem de 4ª geração" é inútil. Você pode vê-lo em livros antigos, ou ouvi-lo de pessoas que começaram a programar nos anos 80, mas uma tag como "4GL" é inútil sem uma explicação do que exatamente o autor quer dizer com isso.

Como ninguém entende imediatamente o que você quer dizer com “4GL”, você não deve usar essas categorizações. Em vez disso, use termos específicos para comunicar exatamente o que você quer dizer. Por exemplo. todos os NASM, LLVM IR e Jasmin são linguagens assembly, mas os dois últimos visam VMs, e o último também é uma linguagem de programação orientada a objetos. São todos esses 2GLs? SQL é uma linguagem específica de domínio parcialmente declarativa para consultas de banco de dados dos anos 80. E TeX é uma linguagem específica de domínio para composição dos anos 70. Ambos são 4GLs, pois são mais ou menos específicos de domínio?

    
por 05.01.2015 / 14:47
fonte