ALGOL: El mejor lenguaje del que nunca has oído hablar

Divulgación: ¡Tu apoyo ayuda a mantener el sitio en funcionamiento! Ganamos una cuota de referencia para algunos de los servicios que recomendamos en esta página. Más información

ALGOL es probablemente el lenguaje más influyente del que nunca has oído hablar.

Los otros lenguajes importantes de la misma época -Fortran, COBOL, Lisp- todavía se utilizan mucho (relativamente).

ALGOL fue importante por derecho propio, especialmente en el ámbito académico y matemático. Pero su mayor influencia ha sido en el desarrollo de otros lenguajes. La mayoría de los lenguajes que se utilizan hoy en día deben algo a ALGOL

Breve historia de ALGOL

ALGOL fue inventado originalmente a finales de la década de 1950, por un comité conjunto de científicos informáticos estadounidenses y europeos, reunidos en Zurich. Su trabajo se publicó como el lenguaje que ahora se conoce como ALGOL 58.

Una segunda versión del grupo, conocida como ALGOL 60, se convirtió en la versión estándar del lenguaje de uso común.

Esta versión, descrita en el ahora famoso Informe ALGOL 60, tuvo un profundo impacto en el campo del diseño de lenguajes de programación. ALGOL 68, la última versión «oficial» del lenguaje no fue bien recibida por la comunidad de ALGOL.

ALGOL nunca se puso de moda en la programación empresarial, aparte de algunas aplicaciones de análisis matemático utilizadas por la industria financiera.

Sin embargo, se utilizó ampliamente en la informática académica y en las matemáticas, y fue el lenguaje estándar para la descripción de algoritmos hasta bien entrada la década de los 80 y 90.

Influencia de Algol en otros lenguajes

La sintaxis y la estructura de Algol influyeron directamente en una serie de otros lenguajes, que han llegado a ser conocidos como lenguajes «similares a Algol».

Estos lenguajes incluyen Simula, C, Pascal y Ada. Algunas de estas conexiones son bastante directas: Pascal, por ejemplo, fue desarrollado por Niklaus Wirth, que previamente había construido un derivado de ALGOL llamado ALGOL W.

El miembro más famoso de este grupo es C, que generó su propia familia de derivados y descendientes: C++, C#, Objective-C y D, por nombrar sólo algunos. La sintaxis de PHP también se basa en C, lo que significa que el lenguaje del lado del servidor más utilizado en Internet se remonta a ALGOL.

Aún más profundamente, ALGOL influyó en la forma de concebir y describir los lenguajes de programación.

El informático John Backus propuso una descripción gramatical para ALGOL (PDF), que se utilizó en el Informe ALGOL 60, editado por Peter Naur. Este lenguaje de descripción se conoció como Backus-Naur Form (BNF). BNF, y EBNF («extendido»), es ahora la forma estándar de describir la gramática de un lenguaje formal.

Recursos de ALGOL

ALGOL es un lenguaje antiguo y en su mayoría obsoleto, por lo que puede ser muy difícil encontrar recursos e información fiable sobre él. Por suerte para ti, no tienes que hacerlo. Hemos buscado en Internet para traerte los recursos más importantes para aprender sobre ALGOL.

Tutoriales históricos

Todos los tutoriales que merecen la pena sobre ALGOL fueron escritos hace mucho tiempo. Afortunadamente, los mejores han sido escaneados y puestos a disposición en línea.

  • A Course of Algol 60 Programming (PDF) es un tutorial sobre el lenguaje, escrito por Peter Naur, el editor del Informe original de ALGOL 60 (ver más abajo)

  • Introducción informal a ALGOL 68, edición revisada (PDF) por Lindsey y Meulen, fue publicado originalmente en 1977, y ahora está disponible gratuitamente en línea

  • Programming Algol 68 Made Easy (PDF) de Sian Leitch, es otro libro clásico

  • A Tutorial on Algol 68 (PDF) es un artículo de una revista de 1976, que proporciona tanto una introducción al lenguaje como un vistazo a la historia de la informática.

Compiladores

  • Algol 68 Genie es un moderno compilador de ALGOL multiplataforma – probablemente la forma más fácil de empezar a trabajar con ALGOL en su ordenador; no te pierdas Learning Algol 68 Genie (PDF) de Marcel van der Veer, que incluye un tutorial del lenguaje y programas de ejemplo

  • Ejecuta Algol Online con el intérprete de Algol en el navegador de Tutorials Point

  • Algol-68 to C es un traductor/compilador portátil que permite ejecutar ALGOL 68 en cualquier entorno con un compilador de C

  • Compilador de ALGOL Z80 con una máquina virtual, para ejecutar ALGOL en MS-DOS.

Ejemplo de programas ALGOL

  • ¡Hola Mundo! y Compute the Mean, escrito en ALGOL para el mainframe de la serie A de Unisys (Burroughs)

  • 99 Botellas de Cerveza en la Pared, programado en ALGOL 68 y en ALGOL 60

  • Sieve of Eratosthenes in ALGOL 60 muestra un programa de ejemplo para encontrar números primos en ALGOL.

Recursos históricos

  • El Informe sobre el Lenguaje Algorítmico ALGOL 60 (PDF) editado por Peter Naur, es el documento original de definición del lenguaje – una lectura obligada para cualquier investigador de ALGOL; el Informe revisado (PDF) proporciona la definición final y oficial del lenguaje; el Informe revisado también está disponible en una edición crítica contemporánea con erratas corregidas (PDF)

  • Algol68.org es un sitio web dedicado al lenguaje, con multitud de recursos y material adicional

  • El proyecto History of ALGOL del Software Preservation Group incluye un tesoro de material de ALGOL, incluyendo documentos originales, compiladores, artículos, aplicaciones y mucho más.

Libros sobre ALGOL

  • A Guide to ALGOL Programming (1962) por Daniel McCracken es un libro que cubre ALGOL 60

  • Programming – ALGOL (1969) por D J Malcolme-Lawes es un primer manual de audiencia general sobre el lenguaje, e incluye una introducción históricamente fascinante a la tecnología informática

  • Programming and Problem-Solving in Algol 68 (1978) de Andrew JT Colin es un libro de nivel básico que introduce tanto la programación informática en general como ALGOL en particular

  • An Introduction to Algol 68 Through Problems (2014) de Learner y Powell también introduce la programación informática utilizando ALGOL, utilizando una serie de problemas prácticos de computación

  • Programming by Case Studies: An Algol Primer (1969) de Chedzoy y Ford es otra introducción a la programación por medio de ALGOL, pero con énfasis en las matemáticas.

ALGOL and Other Languages

  • Handbook and Guide for Comparing and Selecting Computer Languages (1990) de James Ogden ofrece una interesante comparación de las propiedades, puntos fuertes y puntos débiles de Basic, FORTRAN, Pascal, COBOL, PL/1, APL, ALGOL-60 y C

  • Numerical Methods of Mathematical Optimization (1968) editado por Kunzi et al cubre la computación matemática usando tanto FORTRAN como ALGOL

  • Data Structures of Pascal, ALGOL 68, PL/1 y Ada (1986) de Lewi y Paredaens, cubre los conceptos subyacentes, no los ejemplos prácticos de programación, en los lenguajes incluidos

  • FORTRAN, PL/I y los Algols (1979) de Brian Meek compara estas tres importantes familias de lenguajes

  • Expert C Programming: Deep C Secrets (1994) de Peter van der Linden incluye detalles interesantes sobre la influencia que tuvo ALGOL en el desarrollo de C

  • Algol-like Languages Volume 1 (1996) y Volume 2 (1997) editado por O’Hearn y Tennent es una colección de ensayos que exploran la historia de ALGOL y su influencia en el desarrollo de otros lenguajes de programación.

Resumen

ALGOL no es un lenguaje que se deba aprender para conseguir un trabajo o para ser un desarrollador de éxito. Sin embargo, fue enormemente influyente tanto en la práctica como en la teoría de la programación informática.

Si te interesa el diseño de lenguajes o la historia de la informática, ALGOL es una piedra de toque importante con la que debes estar familiarizado.

Más lecturas y recursos

Tenemos más guías, tutoriales e infografías relacionadas con la codificación y el desarrollo:

  • Recursos de Fortran: uno de los primeros lenguajes de alto nivel, todavía muy utilizado en la programación científica.

  • Introducción y recursos de COBOL: el clásico lenguaje de programación empresarial.

  • Recursos de Prolog: Prolog fue uno de los primeros lenguajes de programación lógica.

¿Qué código deberías aprender?

¿Confundido sobre qué lenguaje de programación deberías aprender a codificar? Echa un vistazo a nuestra infografía, ¿Qué código deberías aprender? No sólo discute diferentes aspectos de los lenguajes, sino que responde a preguntas importantes como: «¿Cuánto dinero ganaré programando Java para vivir?»

Deja un comentario