¿Qué son las generaciones de lenguajes de programación?

Las generaciones de lenguajes de programación son una forma de clasificar los lenguajes de programación de computadoras de acuerdo con su distancia total 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 lenguajes de programación generalmente aceptadas y algunas cuyas definiciones no están claramente acordadas. Un lenguaje de programación de computadoras de primera generación es un 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 deben compilarse. 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 posteriores tienen definiciones variadas.

Cuando las generaciones de lenguajes de programación se crearon por primera vez para describir lenguajes, el término se utilizó principalmente para indicar lenguajes de tercera generación. Esto significa que los lenguajes de primera y segunda generación solo se clasificaron como tales para resaltar las capacidades de los lenguajes de tercera generación. La cuarta y quinta generaciones de lenguajes 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 en algunas áreas académicas, las generaciones de idiomas con números más altos se utilizan de 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 de lenguajes de programación indica código de máquina. Esto significa escribir un programa como una secuencia de bytes o, en casos extremos, bits que pueden ser ejecutados directamente por una computadora. En la mayoría de los casos, esto se refiere a un sistema que acepta entradas a través de interruptores 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ódigos y comandos legibles por humanos que aún están vinculados a arquitecturas de sistema específicas, pero presentan un entorno de desarrollo más fácil y algo de abstracción. Los lenguajes ensambladores nunca dejaron de usarse, a partir de 2011, y no solo son extremadamente poderosos sino que también pueden usarse como declaraciones en línea en lenguajes de programación de nivel superior, haciendo 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 desacoplaron el código del procesador en un grado aún mayor, lo que permitió el desarrollo de código que usaba declaraciones más legibles. Además, se desarrollaron compiladores que podían convertir una sola línea de código en múltiples declaraciones de ensamblaje en múltiples plataformas y, eventualmente, en docenas o más de instrucciones de código máquina. Casi todos los lenguajes informáticos que pueden compilar bibliotecas y ejecutables binarios nativos se consideran lenguajes de tercera generación.

En general, un lenguaje de cuarta generación se considera un lenguaje destinado a utilizar 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 que se crea 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 vaga de un lenguaje informático de quinta generación es aquella que permite a un programador presentarle a la computadora un problema que luego intenta resolver. La mayoría de los idiomas que se enumeran como idiomas de quinta generación son en su mayoría de naturaleza académica. Los desarrolladores de lenguajes comerciales han utilizado otras generaciones de lenguajes de programación, como la sexta y la séptima, con fines de marketing.