Como a menudo se clasifica a nivel escolar / universitario, los lenguajes de programación populares (C #, Java, C ++) son todos lenguajes de tercera generación (con un mayor nivel de abstracción de las partes físicas de la máquina). Además, los lenguajes ensambladores se clasifican como lenguajes de segunda y máquina como lenguajes de primera generación.
Inicialmente, pensaba que SQL debería considerarse un lenguaje de cuarta generación porque es más abstracto y está lejos de los detalles de los bucles y es más descriptivo.
Justo ahora descubrí que hay lenguajes de cuarta y quinta generación, pero ¿cuál es la base para que cualquier lenguaje o tecnología de programación se clasifique como lenguaje de cuarta o quinta generación?
Además, ¿hay idiomas de sexta o séptima generación también?
Respuestas:
Resumen de generaciones simples: un lenguaje es la enésima generación cuando se trata de bloques de construcción
Por lo tanto, incluso los idiomas tan nuevos como Google Go o Apple Swift siguen siendo sólidamente de tercera generación. Regex es un lenguaje de coincidencia de texto, lo que lo convierte en un lenguaje de cuarta generación. Según esta definición, la cuarta generación se alinea estrechamente con las DSL. Sin embargo, tenga en cuenta que los lenguajes como C ++ pueden tener tipos del mundo real como
Length
yWeight
además defloat
ydouble
, lo que los hace híbridos de tercera / cuarta generación.Los lenguajes de quinta generación prácticamente no existen, ya que generalmente requieren un nivel de IA que nunca se materializó. El hecho de que los programadores sigamos siendo necesarios es exactamente porque los no programadores no pueden decirle a una computadora con suficiente precisión qué es exactamente lo que quieren.
fuente
DONALD problem
problema en ese blog resalta cuán lejos estamos todavíasudo make me a sandwich
y preocupante cuánto progreso hemos logrado en los últimos 50 años."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?
fuente
(I + 7) * 3
. Sin embargo, no hay consenso sobre dónde termina la categoría 3GL y qué se supone que significan 4GL y 5GL específicamente.