"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?