Como costuma ser classificada no nível de escola / faculdade, as linguagens de programação populares (C #, Java, C ++) são todas as linguagens de terceira geração (com maior nível de abstração das partes físicas da máquina). Além disso, as linguagens assembly são classificadas como 2ª e as linguagens de máquina como 1ª geração.
Inicialmente, eu pensava que o SQL deveria ser considerado uma linguagem de quarta geração, pois é mais abstrato e distante dos detalhes de loop e mais descritivo.
Neste momento, descobri que existem linguagens de quarta e quinta geração, mas qual é a base para qualquer linguagem ou tecnologia de programação ser categorizada como linguagem de quarta ou quinta geração?
Além disso, existem idiomas de 6ª ou 7ª geração também?
Respostas:
Visão geral de gerações simples: um idioma é de nona geração quando são construídos
Portanto, mesmo idiomas tão novos como Google Go ou Apple Swift ainda são solidamente de terceira geração. O Regex é um idioma de correspondência de texto, o que o torna um idioma da quarta geração. Por essa definição, a 4ª geração está alinhada com as DSLs. No entanto, observe que idiomas como C ++ podem ter tipos do mundo real como
Length
eWeight
além defloat
edouble
, o que os torna híbridos de terceira / quarta geração.As linguagens de quinta geração praticamente não existem, pois geralmente exigem um nível de IA que nunca se materializou. O fato de que nós programadores ainda somos necessários é exatamente porque os não programadores não podem dizer a um computador com precisão suficiente o que exatamente eles querem.
fonte
DONALD problem
problema no blog destaca a que distância ainda estamos longesudo make me a sandwich
e, de maneira preocupante, quanto progresso fizemos nos últimos 50 anos."Linguagem de segunda geração" é um chavão. É um termo de marketing. Não existe uma definição universalmente aceita do que exatamente define a “nésima geração” para n> 2. Algumas pessoas categorizam linguagens de “script” como Perl ou Python como 4GLs porque são muito mais de alto nível que C, enquanto outras acham que a definição características das 4GLs é que elas são específicas do domínio, por exemplo, SQL. Alguns idiotas até pensam 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 "3GL" que Fortran (dos anos 50) e C (dos anos 70).
Uma categorização tão confusa como “linguagem de quarta geração” não tem utilidade. Você pode vê-lo em livros antigos ou ouvir pessoas que começaram a programar nos anos 80, mas uma tag como “4GL” é inútil sem uma explicação complementar 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 NASM, LLVM IR e Jasmin são linguagens assembly, mas as duas últimas VMs de destino e a última também são uma linguagem de programação orientada a objetos. São todos esses 2GLs? SQL é uma linguagem específica do domínio parcialmente declarativa para consultas ao banco de dados dos anos 80. E o TeX é uma linguagem específica de domínio para composição tipográfica a partir dos anos 70. Ambos são 4GLs, pois são mais ou menos específicos do domínio?
fonte
(I + 7) * 3
. No entanto, não há consenso sobre onde termina a categoria 3GL e o que 4GL e 5GL devem significar especificamente.