"Lenguaje de enésima generación" es una palabra de moda. Es un término de marketing. No existe una definición universalmente aceptada de lo que define exactamente la "enésima generación" para n> 2. Algunas personas clasifican los lenguajes de "secuencias de comandos" como Perl o Python como 4GL porque son mucho más de alto nivel que C, mientras que otros piensan que la definición Las características de los 4GL son que son específicos del dominio, por ejemplo, SQL. Algunos idiotas incluso piensan que Java (un lenguaje de mediados de los 90 lleno de orientación a objetos y recolección de basura y reflexión) pertenece a la misma categoría "3GL" que Fortran (de los años 50) y C (de los 70).
Una categorización tan confusa como "lenguaje de cuarta generación" es inútil. Puede verlo en libros de texto antiguos, o escucharlo de personas que comenzaron a programar en los años 80, pero una etiqueta como "4GL" no tiene valor sin una explicación adjunta de lo que el autor quiere decir exactamente con eso.
Dado que nadie entiende de inmediato lo que quiere decir con "4GL", no debe usar tales categorizaciones. En su lugar, use términos específicos para comunicar con precisión lo que quiere decir. Por ejemplo, todos los NASM, LLVM IR y Jasmin son lenguajes de ensamblaje, pero los dos últimos VM de destino y el último también es un lenguaje de programación orientado a objetos. ¿Son todos esos 2GL? SQL es un lenguaje parcialmente declarativo de dominio específico para consultas de bases de datos de los años 80. Y TeX es un lenguaje de dominio específico para la composición tipográfica de los años 70. ¿Ambos son 4GL ya que ambos son más o menos específicos del dominio?