¿Qué son las generaciones de lenguaje de programación?
Las generaciones de lenguaje de programación son una forma de clasificar los lenguajes de programación de computadoras de acuerdo con su distancia general del código de máquina real que se genera y, de alguna manera, su facilidad de uso por parte de un programador. Hay tres generaciones de lenguaje de programación generalmente aceptadas y unas pocas cuyas definiciones no están claramente acordadas. Un lenguaje de programación de computadoras de primera generación es el código de máquina directo sin abstracción. Los lenguajes de segunda generación son códigos de máquina abstractos, como el lenguaje ensamblador, que están vinculados a una arquitectura de sistema específica pero son legibles por humanos y necesitan ser compilados. Los lenguajes de tercera generación son la forma más común, incluidos los lenguajes estándar como C y Java®, mientras que los lenguajes de cuarta generación o superiores tienen definiciones variadas.
Cuando las generaciones de lenguaje de programación se crearon por primera vez para describir idiomas, el término se usó principalmente para indicar idiomas de tercera generación. Esto significa que los idiomas de primera y segunda generación solo se clasificaron como tales para resaltar las capacidades de los idiomas de tercera generación. Las generaciones cuarta y quinta del lenguaje de programación se utilizaron en gran medida como términos en relación con el marketing de lenguajes que estaban en desarrollo. En marketing y algunas áreas académicas, las generaciones de idiomas con un número más alto se utilizan de una manera no estándar para indicar que un idioma es más nuevo o tiene más características que otro.
La primera de las generaciones del lenguaje de programación indica el código de máquina. Esto significa escribir un programa como una secuencia de bytes o, en casos extremos, bits que una computadora puede ejecutar directamente. En la mayoría de los casos, esto se refiere a un sistema que acepta entrada a través de conmutadores codificados u otros mecanismos físicos.
Los lenguajes de programación de segunda generación se consideran lenguajes de estilo ensamblador. Estos son lenguajes que están escritos con código legible por humanos y comandos que aún están vinculados a arquitecturas específicas del sistema pero que presentan un entorno de desarrollo más fácil y cierta abstracción. Los lenguajes ensambladores nunca dejaron de usarse, a partir de 2011, y no solo son extremadamente potentes, sino que también se pueden usar como declaraciones en línea en lenguajes de programación de nivel superior, lo que hace falsa la noción de que la generación de un lenguaje equivale a su velocidad o potencia.
Los lenguajes de programación de tercera generación desacoplan el código del procesador en mayor medida, lo que permite el desarrollo de código que utiliza declaraciones más legibles. Además, se desarrollaron compiladores que podrían convertir una sola línea de código en múltiples declaraciones de ensamblaje en múltiples plataformas y, finalmente, en docenas o más instrucciones de código de máquina. Casi todos los lenguajes de computadora que pueden compilar ejecutables binarios nativos y bibliotecas se consideran lenguajes de tercera generación.
En general, un lenguaje de cuarta generación se ve como un lenguaje destinado a usar algún tipo de lenguaje de programación que es muy natural para el usuario. También se puede definir como un lenguaje que utiliza elementos visuales para construir el programa final. Una tercera definición es un lenguaje de programación creado para un propósito específico, como un lenguaje de programación de base de datos o un lenguaje de desarrollo rápido de aplicaciones (RAD).
Una definición flexible de un lenguaje informático de quinta generación es aquella que permite que un programador presente a la computadora un problema que luego intenta resolver. La mayoría de los idiomas que figuran como quinta generación son en su mayoría académicos. Los desarrolladores de lenguaje comercial han utilizado otras generaciones de lenguaje de programación, como la sexta y la séptima, con fines de marketing.