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 poder creciente de los estilos de programación. Los escritores 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 3GL son mucho más independientes de la máquina (portátiles) y más fáciles de programar. Esto incluye características como soporte mejorado para tipos de datos agregados y expresión de conceptos de una manera que favorezca 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 detalles no esenciales. Los 3GL son más abstractos que las generaciones anteriores de lenguajes y, por lo tanto, pueden considerarse lenguajes de nivel superior que sus homólogos de primera y segunda generación. Introducidos por primera vez a finales de la década de 1950, Fortran , ALGOL y COBOL son ejemplos de los primeros 3GL.

Los lenguajes de propósito general más populares hoy en día, como C , C++ , C# , Java , BASIC y Pascal , también son lenguajes de tercera generación, aunque cada uno de estos lenguajes puede subdividirse en otras categorías basadas en otras características contemporáneas. La mayoría de los 3GL admiten programación estructurada . Muchos admiten programación orientada a objetos . Rasgos como estos se usan más a menudo para describir un lenguaje que simplemente ser un 3GL.

Cuarta generación (4GL)

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

Los lenguajes de cuarta generación tienden a especializarse en dominios de programación muy específicos . [4] [5] Los 4GL pueden incluir soporte para 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 lógica y basados ​​en restricciones 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 crear 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 forma, el usuario sólo debe preocuparse de qué problemas debe resolver y qué condiciones debe cumplir, sin preocuparse de 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 marco .

Historia

Los términos lenguaje de programación "primera generación" y "segunda generación" no se utilizaban antes de acuñar el 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. El marketing de este cambio generacional en las máquinas se correlacionó con varios cambios importantes en los llamados lenguajes de programación de alto nivel , que se analizan a continuación, dando contenido técnico a la distinción de segunda y tercera generación entre los lenguajes de programación de alto nivel y al mismo tiempo renombrando retroactivamente el código de máquina. lenguajes como primera generación y lenguajes ensambladores como segunda generación .

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

La clasificación "generacional" de los lenguajes de alto nivel (tercera generación y posteriores) nunca fue completamente precisa y quizás más tarde fue abandonada, con clasificaciones más precisas ganando uso común, como orientada a objetos , declarativa y funcional. C dio origen a C++ y posteriormente a Java y C# ; Ceceo hasta CLOS ; Ada a Ada 2012 ; e incluso COBOL a COBOL 2002 . También en esa "generación" han surgido nuevos lenguajes.

Ver también

Referencias

  1. ^ "Esperanza informática, lenguajes de generación".
  2. ^ Brookshear, J. Glenn (2012). Informática: una descripción general (11ª ed.). Addison-Wesley. págs. 240-241. ISBN 978-0-13-256903-3.
  3. ^ Vass, Peter. "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 de dominio específico para la ingeniería de software. Archivado el 16 de mayo de 2011 en Wayback Machine .
  5. ^ Arie van Deursen; Paul Klint; Joost Visser (1998). "Idiomas de dominio específico: 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 autónomo de precisión 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. 195.ISBN 9781602670006.
  9. ^ E. Balagurusamy, Fundamentos de la informática , McGraw Hill Education (India), 2009, ISBN 978-0070141605 , p. 340.