stringtranslate.com

Historia de los lenguajes de programación.

La historia de los lenguajes de programación abarca desde la documentación de las primeras computadoras mecánicas hasta las herramientas modernas para el desarrollo de software . Los primeros lenguajes de programación eran altamente especializados y dependían de la notación matemática y una sintaxis igualmente oscura . [1] A lo largo del siglo XX, la investigación en teoría de compiladores condujo a la creación de lenguajes de programación de alto nivel , que utilizan una sintaxis más accesible para comunicar instrucciones.

El primer lenguaje de programación de alto nivel fue Plankalkül , creado por Konrad Zuse entre 1942 y 1945. [2] El primer lenguaje de alto nivel que tuvo un compilador asociado fue creado por Corrado Böhm en 1951, para su tesis doctoral . [3] El primer lenguaje disponible comercialmente fue FORTRAN (FORMula TRANslation), desarrollado en 1956 (el primer manual apareció en 1956, pero desarrollado por primera vez en 1954) por un equipo dirigido por John Backus en IBM .

Historia temprana

Durante 1842-1849, Ada Lovelace tradujo las memorias del matemático italiano Luigi Menabrea sobre la máquina más nueva propuesta por Charles Babbage : la máquina analítica ; complementó las memorias con notas que detallaban un método para calcular los números de Bernoulli con el motor, reconocido por la mayoría de los historiadores como el primer programa informático publicado en el mundo. [4]

Jacquard Looms y el Difference Engine de Charles Babbage fueron diseñados para utilizar tarjetas perforadas , [5] [6] que describirían la secuencia de operaciones que deberían realizar sus máquinas programables.

Los primeros códigos informáticos estaban especializados para sus aplicaciones: por ejemplo, Alonzo Church era capaz de expresar el cálculo lambda de forma formulaica y la máquina de Turing era una abstracción del funcionamiento de una máquina de marcar con cinta.

Primeros lenguajes de programación

En la década de 1940 se crearon las primeras computadoras eléctricas reconocibles y modernas. La velocidad y la capacidad de memoria limitadas obligaron a los programadores a escribir programas en lenguaje ensamblador ajustados a mano . Con el tiempo se comprendió que programar en lenguaje ensamblador requería una gran cantidad de esfuerzo intelectual. [ cita necesaria ]

Una de las primeras propuestas para un lenguaje de programación de alto nivel fue Plankalkül , desarrollado por Konrad Zuse para su computadora Z1 entre 1942 y 1945, pero no implementado en ese momento. [7]

Los primeros lenguajes de programación funcionales diseñados para comunicar instrucciones a una computadora se escribieron a principios de la década de 1950. El código corto de John Mauchly , propuesto en 1949, fue uno de los primeros lenguajes de alto nivel jamás desarrollado para una computadora electrónica . [8] A diferencia del código de máquina , las declaraciones de código corto representaban expresiones matemáticas en forma comprensible. Sin embargo, el programa tenía que interpretarse en código de máquina cada vez que se ejecutaba, lo que hacía que el proceso fuera mucho más lento que ejecutar el código de máquina equivalente.

A principios de la década de 1950, Alick Glennie desarrolló Autocode , posiblemente el primer lenguaje de programación compilado, en la Universidad de Manchester . En 1954, RA Brooker desarrolló una segunda iteración del lenguaje, conocida como "Mark 1 Autocode", para el Mark 1 . Brooker, de la Universidad de Manchester, también desarrolló un código automático para el Ferranti Mercury en la década de 1950. La versión para EDSAC 2 fue ideada por Douglas Hartree del Laboratorio de Matemáticas de la Universidad de Cambridge en 1961. Conocido como EDSAC 2 Autocode, fue un desarrollo directo de Mercury Autocode adaptado a las circunstancias locales y se destacó por su optimización del código objeto y su lenguaje fuente. diagnósticos avanzados para la época. Atlas Autocode, un hilo de desarrollo contemporáneo pero separado, fue desarrollado para la máquina Atlas 1 de la Universidad de Manchester .

En 1954, FORTRAN fue inventado en IBM por un equipo dirigido por John Backus ; Fue el primer lenguaje de propósito general de alto nivel ampliamente utilizado que tuvo una implementación funcional, en contraste con solo un diseño en papel. [9] [10] Cuando FORTRAN se introdujo por primera vez, fue visto con escepticismo debido a errores, retrasos en el desarrollo y la eficiencia comparativa de los programas "codificados a mano" escritos en ensamblador. [11] Sin embargo, en un mercado de hardware que estaba evolucionando rápidamente; el lenguaje finalmente se hizo conocido por su eficiencia. Sigue siendo un lenguaje popular para la informática de alto rendimiento [12] y se utiliza para programas que comparan y clasifican las 500 supercomputadoras más rápidas del mundo. [13]

Grace Hopper ideó otro lenguaje de programación temprano en los EE. UU., llamado FLOW-MATIC . Fue desarrollado para UNIVAC I en Remington Rand durante el período comprendido entre 1955 y 1959. Hopper descubrió que los clientes de procesamiento de datos empresariales se sentían incómodos con la notación matemática y, a principios de 1955, ella y su equipo escribieron una especificación para un lenguaje de programación en inglés y implementó un prototipo. [14] El compilador FLOW-MATIC estuvo disponible públicamente a principios de 1958 y estuvo sustancialmente completo en 1959. [15] Flow-Matic fue una influencia importante en el diseño de COBOL , ya que sólo él y su descendiente directo AIMACO estaban en uso en el tiempo. [dieciséis]

Otros lenguajes que todavía se utilizan hoy en día incluyen LISP (1958), inventado por John McCarthy y COBOL (1959), creado por el Short Range Committee. Otro hito a finales de la década de 1950 fue la publicación, por parte de un comité de informáticos estadounidenses y europeos, de "un nuevo lenguaje para algoritmos"; el Informe ALGOL 60 (el " Lenguaje rítmico ALGO "). Este informe consolidó muchas ideas que circulaban en ese momento y presentó tres innovaciones lingüísticas clave:

Otra innovación, relacionada con esto, fue la forma en que se describió el lenguaje:

ALGOL 60 fue particularmente influyente en el diseño de lenguajes posteriores, algunos de los cuales pronto se hicieron más populares. Los grandes sistemas de Burroughs fueron diseñados para ser programados en un subconjunto extendido de ALGOL.

Las ideas clave de ALGOL continuaron y produjeron ALGOL 68 :

Las muchas características del lenguaje poco utilizado de ALGOL 68 (por ejemplo, bloques concurrentes y paralelos) y su complejo sistema de atajos sintácticos y coerciones automáticas de tipos lo hicieron impopular entre los implementadores y le ganaron la reputación de ser difícil . De hecho, Niklaus Wirth abandonó el comité de diseño para crear el lenguaje Pascal más simple .

Logotipos

Algunos idiomas notables que se desarrollaron en este período incluyen:

Estableciendo paradigmas fundamentales

Logotipos

El período comprendido entre finales de los años 1960 y finales de los 1970 trajo un importante florecimiento de los lenguajes de programación. La mayoría de los principales paradigmas lingüísticos actualmente en uso se inventaron en este período: [ ¿investigación original? ]

En las décadas de 1960 y 1970 también se produjo un debate considerable sobre los méritos de la " programación estructurada ", que esencialmente significaba programar sin el uso de goto. Una fracción significativa de programadores creía que, incluso en lenguajes que proporcionan goto, es un mal estilo de programación usarlo excepto en circunstancias excepcionales. Este debate estuvo estrechamente relacionado con el diseño de lenguajes: algunos lenguajes no tenían goto, lo que obligó al uso de programación estructurada.

Para proporcionar tiempos de compilación aún más rápidos, algunos lenguajes se estructuraron para " compiladores de un solo paso " que esperan que las rutinas subordinadas se definan primero, como ocurre con Pascal , donde la rutina principal, o función del controlador, es la sección final del listado del programa.

Algunos idiomas notables que se desarrollaron en este período incluyen:

Década de 1980: consolidación, módulos, rendimiento.

Logotipos

Los años 1980 fueron años de relativa consolidación en las lenguas imperativas . En lugar de inventar nuevos paradigmas, todos estos movimientos elaboraron sobre las ideas inventadas en la década anterior. C++ combina programación orientada a objetos y de sistemas. El gobierno de Estados Unidos estandarizó Ada , un lenguaje de programación de sistemas destinado a contratistas de defensa. En Japón y otros lugares, se gastaron grandes sumas de dinero en la investigación de los llamados lenguajes de programación de quinta generación que incorporaban construcciones de programación lógica. La comunidad de lenguajes funcionales tomó medidas para estandarizar ML y Lisp. Las investigaciones en Miranda , un lenguaje funcional de evaluación perezosa , comenzaron a afianzarse en esta década.

Una nueva tendencia importante en el diseño de lenguajes fue un mayor enfoque en la programación para sistemas de gran escala mediante el uso de módulos o unidades organizativas de código de gran escala. Modula , Ada y ML desarrollaron sistemas de módulos notables en la década de 1980. Los sistemas de módulos a menudo estaban unidos a construcciones de programación genéricas : los genéricos eran, en esencia, módulos parametrizados [ cita necesaria ] (ver también polimorfismo en la programación orientada a objetos ).

Aunque no aparecieron nuevos paradigmas importantes para los lenguajes de programación imperativos, muchos investigadores ampliaron las ideas de lenguajes anteriores y las adaptaron a nuevos contextos. Por ejemplo, los lenguajes de los sistemas Argus y Emerald adaptaron la programación orientada a objetos a los sistemas informáticos distribuidos .

La década de 1980 también trajo avances en la implementación de lenguajes de programación. El movimiento de computadora con conjunto de instrucciones reducido (RISC) en la arquitectura de computadoras postuló que el hardware debería diseñarse para compiladores en lugar de programadores ensambladores humanos. Con la ayuda de mejoras en la velocidad de la unidad central de procesamiento (CPU) que permitieron métodos de compilación cada vez más agresivos, el movimiento RISC despertó un mayor interés en la tecnología de compilación para lenguajes de alto nivel.

La tecnología del lenguaje continuó en esta línea hasta bien entrada la década de 1990.

Algunos idiomas notables que se desarrollaron en este período incluyen:

Década de 1990: la era de Internet

Logotipos

El rápido crecimiento de Internet a mediados de la década de 1990 fue el siguiente gran acontecimiento histórico en los lenguajes de programación. Al abrir una plataforma radicalmente nueva para los sistemas informáticos, Internet creó una oportunidad para la adopción de nuevos lenguajes. En particular, el lenguaje de programación JavaScript ganó popularidad debido a su temprana integración con el navegador web Netscape Navigator. Varios otros lenguajes de programación lograron un uso generalizado en el desarrollo de aplicaciones personalizadas para servidores web como PHP. La década de 1990 no vio ninguna novedad fundamental en los lenguajes imperativos , pero sí mucha recombinación y maduración de viejas ideas. Esta era inició la difusión de los lenguajes funcionales . Una gran filosofía impulsora fue la productividad del programador. Surgieron muchos lenguajes de desarrollo rápido de aplicaciones (RAD), que generalmente venían con un entorno de desarrollo integrado (IDE), recolección de basura y eran descendientes de lenguajes más antiguos. Todos estos lenguajes estaban orientados a objetos . Estos incluían Object Pascal , Objective Caml (rebautizado como OCaml ), Visual Basic y Java . Java en particular recibió mucha atención.

Más radicales e innovadores que los lenguajes RAD fueron los nuevos lenguajes de programación . Estos no descendieron directamente de otros lenguajes y presentaban nuevas sintaxis y una incorporación más liberal de características. Muchos consideran que estos lenguajes de scripting son más productivos incluso que los lenguajes RAD, pero a menudo debido a opciones que hacen que los programas pequeños sean más simples pero los programas grandes sean más difíciles de escribir y mantener. [ cita necesaria ] Sin embargo, los lenguajes de programación llegaron a ser los más destacados utilizados en conexión con la Web.

Algunos lenguajes de programación incluyeron otros lenguajes en su distribución para ahorrar tiempo de desarrollo. por ejemplo, tanto Python como Ruby incluyeron Tcl para admitir la programación GUI a través de bibliotecas como Tkinter .

Algunos idiomas notables que se desarrollaron en este período incluyen:

Tendencias actuales

Logotipos

La evolución de los lenguajes de programación continúa, tanto en la industria como en la investigación. Algunas de las tendencias recientes han incluido:

Muchas empresas de Big Tech introdujeron múltiples lenguajes de programación nuevos que están diseñados para satisfacer sus necesidades y brindan soporte de primera clase para sus plataformas. Por ejemplo:

Algunos lenguajes notables desarrollados durante este período y que figuran en el índice TIOBE (100 lenguajes de programación principales) a febrero de 2024 incluyen: [20] [21]

Otros lenguajes de programación nuevos incluyen Elm , Ballerina , Red , Crystal , Haxe , V (Vlang) , Reason y Mojo .

Figuras claves

Algunos innovadores

Algunas personas clave que ayudaron a desarrollar lenguajes de programación:

Ver también

Referencias

  1. ^ Tolva (1978) pág. dieciséis.
  2. ^ Knuth, Donald E.; Pardo, Luis Trabb. "Desarrollo temprano de lenguajes de programación". Enciclopedia de Ciencias y Tecnología de la Computación . 7 . Marcel Dekker: 419–493.
  3. ^ Tesis doctoral de Corrado Böhm
  4. ^ Fuegi, J.; Francis, J. (octubre-diciembre de 2003), "Lovelace & Babbage y la creación de las 'notas' de 1843", Anales de la Historia de la Computación , 25 (4): 16–26, doi :10.1109/MAHC.2003.1253887
  5. ^ Bales, Rebecca (24 de julio de 2023). "Explicación del motor analítico Charles Babbage". historia-computadora.com .
  6. ^ Swade, Doron. "Los motores". computerhistory.org . Consultado el 23 de febrero de 2024 .
  7. ^ En 1998 y 2000 se crearon compiladores para el lenguaje como ejercicio histórico. Rojas, Raúl , et al. (2000). "Plankalkül: el primer lenguaje de programación de alto nivel y su implementación". Institut frame Informatik, Freie Universität Berlin, Informe técnico B-3/2000. (texto completo)
  8. ^ Sebesta, WS (2006). Conceptos de Lenguajes de Programación . pag. 44.ISBN 978-0-321-33025-3.
  9. ^ "Muere el creador de Fortran, John Backus: tecnología y dispositivos". Noticias NBC. 2007-03-20 . Consultado el 25 de abril de 2010 .
  10. ^ "CSC-302 99S: Clase 02: Una breve historia de los lenguajes de programación". Math.grin.edu. Archivado desde el original el 15 de julio de 2010 . Consultado el 25 de abril de 2010 .
  11. ^ Padua, David (febrero de 2000). "El compilador FORTRAN I" (PDF) . Computación en Ciencias e Ingeniería . 2 (1): 70–75. Código Bib : 2000CSE.....2a..70P. doi : 10.1109/5992.814661 . Consultado el 7 de noviembre de 2019 .
  12. ^ Eugene Loh (18 de junio de 2010). "El lenguaje de programación HPC ideal". Cola . 8 (6). Asociación de Máquinas Informáticas.
  13. ^ "HPL: una implementación portátil del punto de referencia Linpack de alto rendimiento para computadoras con memoria distribuida" . Consultado el 21 de febrero de 2015 .
  14. ^ Tolva (1978) pág. dieciséis.
  15. ^ Sammet (1969) pág. 316
  16. ^ Sammet (1978) pág. 204.
  17. ^ Gordon, Michael JC (1996). «De LCF a HOL: una breve historia» (PDF) . pag. 3 . Consultado el 4 de mayo de 2015 . El LCF de Edimburgo, incluido el intérprete de ML, se implementó en Lisp.
  18. ^ Manjoo, Farhad (29 de julio de 2020). "¿Cómo sabes que un humano escribió esto?". Los New York Times . ISSN  0362-4331 . Consultado el 4 de agosto de 2020 .
  19. ^ Milmo, Dan (6 de diciembre de 2023). "Google dice que el nuevo modelo de IA Gemini supera a ChatGPT en la mayoría de las pruebas". El guardián . ISSN  0261-3077 . Consultado el 26 de febrero de 2024 .
  20. ^ "Índice TIOBE, 100 principales lenguajes de programación según el índice TIOBE". www.tiobe.com . Índice TIOBE . 22 de febrero de 2024.
  21. ^ "Octuverso 2018 de GitHub". Archivado desde el original el 22 de marzo de 2019.
  22. ^ Rojas, Raúl; Hashagen, Ulf (2002). Las primeras computadoras: historia y arquitecturas. Prensa del MIT. pag. 292.ISBN 978-0262681377. Consultado el 25 de octubre de 2013 .

Otras lecturas

enlaces externos