stringtranslate.com

Generaciones de lenguajes de programación

Los lenguajes de programación se han clasificado en varias generaciones de lenguajes de programación . Históricamente, esta clasificación se utilizó para indicar el aumento de potencia de los estilos de programación. Los autores posteriores han redefinido un poco los significados a medida que las distinciones que antes se consideraban importantes se volvieron menos significativas para la práctica actual.

Generaciones

Segunda generación (2GL)

Ejemplos: lenguajes ensambladores

El lenguaje de programación de segunda generación (2GL) es una forma generacional de categorizar los lenguajes ensambladores . [1] [2] [3]

Tercera generación (3GL)

Ejemplos: C , C++ , Java , Python , PHP , Perl , C# , BASIC , Pascal , Fortran , ALGOL , COBOL

Los lenguajes de tercera generación son mucho más independientes de la máquina (portátiles) y más amigables para el programador. Esto incluye características como un mejor soporte para tipos de datos agregados y la expresión de conceptos de una manera que favorece al programador, no a la computadora. Un lenguaje de tercera generación mejora con respecto a un lenguaje de segunda generación al hacer que la computadora se encargue de los detalles no esenciales. Los lenguajes de tercera generación son más abstractos que las generaciones anteriores de lenguajes y, por lo tanto, pueden considerarse lenguajes de nivel superior a sus contrapartes de primera y segunda generación. Introducidos por primera vez a fines de la década de 1950, Fortran , ALGOL y COBOL son ejemplos de los primeros lenguajes de tercera generación.

La mayoría de los lenguajes de propósito general más populares en la actualidad, como C , C++ , C# , Java y BASIC , también son lenguajes de tercera generación, aunque cada uno de estos lenguajes se puede subdividir en otras categorías basadas en otras características contemporáneas. La mayoría de los lenguajes de tercera generación admiten programación estructurada . Muchos admiten programación orientada a objetos . Características como estas se utilizan con más frecuencia para describir un lenguaje en lugar de ser simplemente un lenguaje de tercera generación.

Cuarta generación (4GL)

Ejemplos: ABAP , Unix Shell , SQL , PL/SQL , Oracle Reports , R , Halide

Los lenguajes de cuarta generación tienden a estar especializados en dominios de programación muy específicos . [4] [5] Los lenguajes de cuarta generación pueden incluir soporte para la gestión de bases de datos , generación de informes , optimización matemática , desarrollo de GUI o desarrollo web .

Quinta generación (5GL)

Ejemplos: Prolog , OPS5 , Mercury , CVXGen [6] [7] , Geometry Expert

Un lenguaje de programación de quinta generación (5GL) es cualquier lenguaje de programación basado en la resolución de problemas utilizando restricciones dadas al programa, en lugar de utilizar un algoritmo escrito por un programador. [8] Pueden utilizar técnicas de inteligencia artificial para resolver problemas de esta manera. La mayoría de los lenguajes de programación basados ​​en restricciones y lógica y algunos otros lenguajes declarativos son lenguajes de quinta generación.

Mientras que los lenguajes de programación de cuarta generación están diseñados para construir programas específicos, los lenguajes de quinta generación están diseñados para hacer que la computadora resuelva un problema determinado sin el programador. De esta manera, el usuario solo necesita preocuparse por qué problemas deben resolverse y qué condiciones deben cumplirse, sin preocuparse por cómo implementar una rutina o algoritmo para resolverlos. Los lenguajes de quinta generación se utilizan principalmente en la investigación de Inteligencia Artificial o IA. OPS5 y Mercury son ejemplos de lenguajes de quinta generación, [9] al igual que ICAD , que se construyó sobre Lisp . KL-ONE es un ejemplo de una idea relacionada, un lenguaje de marco .

Historia

Los términos lenguaje de programación de "primera generación" y "segunda generación" no se utilizaban antes de la acuñación del término "tercera generación"; ninguno de estos tres términos se menciona en los primeros compendios de lenguajes de programación. La introducción de una tercera generación de tecnología informática coincidió con la creación de una nueva generación de lenguajes de programación. La comercialización de este cambio generacional en las máquinas se correlacionó con varios cambios importantes en lo que se denominaron lenguajes de programación de alto nivel , que se analizan a continuación, dando contenido técnico a la distinción de segunda/tercera generación entre los lenguajes de programación de alto nivel, al tiempo que se renombraba retroactivamente los lenguajes de código máquina como primera generación y los lenguajes ensambladores como segunda generación .

Inicialmente, todos los lenguajes de programación de un nivel superior al ensamblador se denominaron " de tercera generación ", pero más tarde se introdujo el término " de cuarta generación " para intentar diferenciar los (entonces) nuevos lenguajes declarativos (como Prolog y los lenguajes específicos de dominio) que afirmaban operar en un nivel aún más alto, y en un dominio incluso más cercano al usuario (por ejemplo, a nivel de lenguaje natural) que los lenguajes originales, imperativos de alto nivel, como Pascal , C , ALGOL , Fortran , BASIC , etc.

La clasificación "generacional" de los lenguajes de alto nivel (tercera generación y posteriores) nunca fue del todo precisa y quizás fue abandonada más adelante, con clasificaciones más precisas que ganaron uso común, como orientado a objetos , declarativo y funcional. C dio origen a C++ y más tarde a Java y C# ; Lisp a CLOS ; Ada a Ada 2012 ; e incluso COBOL a COBOL 2002. También han surgido nuevos lenguajes en esa "generación".

Véase también

Referencias

  1. ^ "Esperanza informática, Generación de lenguajes".
  2. ^ Brookshear, J. Glenn (2012). Ciencias de la computación: una visión general (11.ª ed.). Addison-Wesley. págs. 240–241. ISBN 978-0-13-256903-3.
  3. ^ Vass, Péter. "Generaciones de lenguajes de programación y paradigmas de programación" (PDF) . Archivado desde el original (PDF) el 29 de enero de 2020.
  4. ^ 35.ª Conferencia Internacional de Hawái sobre Ciencias de Sistemas - 1002 Lenguajes específicos de dominio para ingeniería de software. Archivado el 16 de mayo de 2011 en Wayback Machine .
  5. ^ Arie van Deursen; Paul Klint; Joost Visser (1998). "Lenguajes específicos de dominio: una bibliografía comentada". Archivado desde el original el 2 de febrero de 2009. Consultado el 15 de marzo de 2009 .
  6. ^ NAE, The Bridge, Aterrizaje de precisión autónomo de cohetes espaciales, 19 de diciembre de 2016, Autor: Lars Blackmore.
  7. ^ CVXGEN: Generación de código para optimización convexa, cvxgen.com, 4 de diciembre de 2013.
  8. ^ Dong, Jielin, ed. (2007). Diccionario de red . Saratoga, California: Javvin Technologies, Inc., pág. 195. ISBN 9781602670006.
  9. ^ E. Balagurusamy, Fundamentos de computadoras , Mcgraw Hill Education (India), 2009, ISBN 978-0070141605 , pág. 340.