Articulo de referencia

ALGOL

e.g. [[PL/I]], [[Simula]], [[Pascal (programming language)|Pascal]], [[C (programming language)|C]] and [[Scheme (programming language)|Scheme]]"}},"i":0}}]}"> ALGOL ( / ˈ æ l ɡ...

ALGOL ( / ˈ æ l ɡ ɒ l , - ɡ ɔː l / ; abreviatura de " Lenguaje Algorítmico ") [ 1 ] es una familia de lenguajes de programación imperativos desarrollados originalmente en 1958. ALGOL influyó notablemente en muchos otros lenguajes y fue el método estándar para la descripción de algoritmos utilizado por la Association for Computing Machinery (ACM) en libros de texto y fuentes académicas durante más de treinta años. [ 2 ]

En el sentido de que la sintaxis de la mayoría de los lenguajes modernos es "similar a Algol", [ 3 ] fue posiblemente más influyente que otros tres lenguajes de programación de alto nivel con los que fue aproximadamente contemporáneo: FORTRAN , Lisp y COBOL . [ 4 ] Fue diseñado para evitar algunos de los problemas percibidos con FORTRAN y finalmente dio origen a muchos otros lenguajes de programación, incluidos PL /I , Simula , BCPL , B , Pascal , Ada y C.

ALGOL introdujo los bloques de código y los pares begin... endpara delimitarlos. También fue el primer lenguaje en implementar definiciones de funciones anidadas con ámbito léxico . Además, fue el primer lenguaje de programación en prestar especial atención a la definición formal del lenguaje y, a través del Informe Algol 60 , introdujo la notación Backus-Naur , una notación gramatical formal fundamental para el diseño de lenguajes.

Existían tres especificaciones principales, que recibieron el nombre del año en que se publicaron por primera vez:

  • ALGOL 58 – originalmente se propuso llamarlo IAL , por Lenguaje Algebraico Internacional .
  • ALGOL 60 – implementado por primera vez como X1 ALGOL 60 en 1961. Revisado en 1963. [ 5 ] [ 6 ] [ 7 ]
  • ALGOL 68 – introdujo nuevos elementos, incluyendo arreglos flexibles, segmentos, paralelismo e identificación de operadores. Revisado en 1973. [ 8 ]

ALGOL 68 es sustancialmente diferente de ALGOL 60 y no tuvo buena acogida, por lo que generalmente se entiende que cuando se hace referencia a "Algol" se hace referencia a ALGOL 60 y sus dialectos.

Historia

ALGOL fue desarrollado conjuntamente por un comité de científicos informáticos europeos y estadounidenses en una reunión celebrada en 1958 en el Instituto Federal Suizo de Tecnología de Zúrich (véase ALGOL 58 ). [ 9 ] Especificaba tres sintaxis diferentes: una sintaxis de referencia, una sintaxis de publicación y una sintaxis de implementación, sintaxis que le permitían utilizar diferentes nombres de palabras clave y convenciones para los puntos decimales (comas frente a puntos) en distintos lenguajes. [ 5 ]

ALGOL fue utilizado principalmente por científicos informáticos investigadores en Estados Unidos y Europa; las aplicaciones comerciales se vieron obstaculizadas por la ausencia de funciones estándar de entrada/salida en su descripción y la falta de interés en el lenguaje por parte de los grandes fabricantes de computadoras (a excepción de Burroughs Corporation ). [ 10 ] Sin embargo, ALGOL 60 se convirtió en el estándar para la publicación de algoritmos y tuvo un profundo efecto en el desarrollo futuro del lenguaje. [ 10 ]

subtítulo
Árbol genealógico de la dinastía de lenguajes de programación Algol, Fortran y COBOL.

John Backus desarrolló el método de forma normal de Backus para describir lenguajes de programación específicamente para ALGOL 58. Fue revisado y ampliado por Peter Naur para ALGOL 60, y por sugerencia de Donald Knuth se le cambió el nombre a forma de Backus-Naur . [ 11 ]

Peter Naur: "Como editor del Boletín ALGOL, participé en los debates internacionales sobre el idioma y fui seleccionado para ser miembro del grupo europeo de diseño lingüístico en noviembre de 1959. En esta calidad, fui el editor del informe ALGOL 60, elaborado como resultado de la reunión ALGOL 60 celebrada en París en enero de 1960." [ 12 ]

Las siguientes personas asistieron a la reunión en París (del 11 al 16 de enero): [ 5 ]

Alan Perlis ofreció una vívida descripción de la reunión: «Las reuniones fueron agotadoras, interminables y estimulantes. Uno se irritaba cuando sus buenas ideas se descartaban junto con las malas de los demás. Sin embargo, la diligencia se mantuvo durante todo el período. La química entre los 13 fue excelente». [ 13 ]

Legado

Una contribución significativa del Informe ALGOL 58 fue proporcionar términos estándar para conceptos de programación: instrucción, declaración, tipo, etiqueta, primario, bloque y otros. [ 10 ]

ALGOL 60 inspiró muchos lenguajes posteriores. Tony Hoare comentó: «Este es un lenguaje tan adelantado a su tiempo que no solo mejoró a sus predecesores, sino también a casi todos sus sucesores». [ 14 ] El lenguaje de programación Scheme , una variante de Lisp que adoptó la estructura de bloques y el alcance léxico de ALGOL, también adoptó la frase «Informe revisado sobre el lenguaje algorítmico Scheme» para sus documentos de estándares en homenaje a ALGOL. [ 15 ]

Propiedades

ALGOL 60, tal como se definió oficialmente, no contaba con funciones de entrada/salida ; las implementaciones definían las suyas propias de maneras que rara vez eran compatibles entre sí. En cambio, ALGOL 68 ofrecía una amplia biblioteca de funciones de transput (entrada/salida).

ALGOL 60 permitía dos estrategias de evaluación para el paso de parámetros : la llamada por valor y la llamada por nombre . La llamada por nombre tiene ciertos efectos en contraste con la llamada por referencia . Por ejemplo, sin especificar los parámetros como valor o referencia , es imposible desarrollar un procedimiento que intercambie los valores de dos parámetros si los parámetros reales que se pasan son una variable entera y un array indexado por esa misma variable entera. [ 16 ] Piense en pasar un puntero a swap(i, A[i]) a una función. Ahora que cada vez que se hace referencia a swap, se reevalúa. Digamos que i  := 1 y A[i]  := 2, entonces cada vez que se hace referencia a swap devolverá la otra combinación de los valores ([1,2], [2,1], [1,2] y así sucesivamente). Una situación similar ocurre con una función aleatoria pasada como argumento real.

Muchos diseñadores de compiladores conocen la llamada por nombre por las interesantes " funciones thunk " que se utilizan para implementarla. Donald Knuth ideó la " prueba del hombre o del niño " para diferenciar los compiladores que implementaban correctamente la recursión y las referencias no locales. Esta prueba contiene un ejemplo de llamada por nombre.

ALGOL 68 se definió utilizando un formalismo gramatical de dos niveles inventado por Adriaan van Wijngaarden , que lleva su nombre. Las gramáticas de Van Wijngaarden utilizan una gramática libre de contexto para generar un conjunto infinito de producciones que reconocerán un programa ALGOL 68 específico; cabe destacar que son capaces de expresar el tipo de requisitos que en muchos otros estándares de lenguajes de programación se denominan "semántica" y que deben expresarse en prosa de lenguaje natural propensa a la ambigüedad, para luego implementarse en compiladores como código ad hoc adjunto al analizador sintáctico del lenguaje formal.

Ejemplos y portabilidad

Comparación de ejemplos de código

ALGOL 60

(La forma en que debe escribirse el texto en negrita depende de la implementación; por ejemplo, «INTEGER» —con comillas incluidas— para entero. Esto se conoce como stropping ).

procedimiento Absmax(a) Tamaño:(n, m) Resultado:(y) Subíndices:(i, k); valor n, m; matriz a; entero n, m, i, k; real y; comentario El elemento más grande absoluto de la matriz a, de tamaño n por m, se copia a y, y los subíndices de este elemento a i y k; comenzar entero p, q; y := 0; i := k := 1; para p := 1 paso 1 hasta n hacer para q := 1 paso 1 hasta m hacer si abs(a[p, q]) > y entonces comenzar y := abs(a[p, q]); i := p; k := q fin fin Absmax

Aquí hay un ejemplo de cómo producir una tabla usando el ALGOL 803 de Elliott. [ 17 ]

PRUEBA DE ALGOLITOS DE PUNTO FLOTANTE COMIENZA REAL A, B, C, D' LEER D' PARA A:= 0.0 PASO D HASTA 6.3 HACER COMENZAR PERFORADORA DE IMPRESIÓN (3) ,££L??' B := SIN(A)' C := COS(A)' IMPRESIÓN PERFORADA(3), MISMA LÍNEA , ALINEADO(1,6) , A, B, C' FIN FIN'

ALGOL 68

Los siguientes ejemplos de código son versiones en ALGOL 68 de los ejemplos de código en ALGOL 60 mencionados anteriormente.

Las implementaciones de ALGOL 68 utilizaron los métodos de ALGOL 60 para el marcado de tokens . En el caso de ALGOL 68, los tokens en negrita son palabras reservadas, tipos (modos) u operadores.

proc abs max = ([,] real a, ref real y, ref int i, k) real : comentario El elemento más grande absoluto de la matriz a, de tamaño ⌈a por 2⌈a se transfiere a y, y los subíndices de este elemento a i y k; comentario inicio real y := 0; i := ⌊a; k := 2⌊a; para p desde ⌊a hasta ⌈a hacer para q desde 2⌊a hasta 2⌈a hacer si abs a[p, q] > y entonces y := abs a[p, q]; i := p; k := q fi od od ; y fin # abs máx #

Nota: los límites inferior (⌊) y superior (⌈) de una matriz, así como el seccionamiento de matrices, están directamente disponibles para el programador.

Prueba de punto flotante algol68: ( real a,b,c,d;   # printf – envía la salida al archivo stand out . # # printf($p$); – selecciona una nueva página # printf(($pg$,"Ingrese d:"); leer(d);  para paso desde 0 mientras a:=paso*d; a <= 2*pi hacer printf($l$); # $l$ - selecciona una nueva línea . # b := sen(a); c := cos(a); printf(($zd.6d$,a,b,c)) # formatea la salida con 1 dígito antes y 6 después del punto decimal. # od )

Cronología: Hola mundo

El programa "Hola, mundo" es un ejemplo común para presentar lenguajes de programación. [ 18 ] [ 19 ] [ 20 ] [ 21 ] . Aquí, lo usamos para mostrar las diferencias en los lenguajes ALGOL. [ 22 ]

ALGOL 58 (IAL)

ALGOL 58 no disponía de funciones de entrada/salida estándar.

Familia ALGOL 60

Dado que ALGOL 60 no disponía de funciones de entrada/salida estándar, no existe un programa portátil "hola mundo" en ALGOL.

Estos ejemplos están escritos en Burroughs Extended Algol; los dos primeros se imprimen en la terminal interactiva donde se ejecutan. El primero utiliza una matriz de caracteres, similar a C. El lenguaje permite usar el identificador de la matriz como puntero a la misma y, por lo tanto, en una instrucción REPLACE.

INICIO ARCHIVO F ( TIPO = REMOTO ); MATRIZ EBCDIC E [ 0 : 11 ]; REEMPLAZAR E POR "¡HOLA MUNDO!" ; ESCRIBIR ( F , * , E ); FIN .

Un programa más sencillo que utiliza un formato en línea:

INICIO ARCHIVO F ( TIPO = REMOTO ); ESCRIBIR ( F , < "HOLA MUNDO!" > ); FIN .

Un programa aún más sencillo que utiliza la instrucción Display. Su salida se imprime en la consola del sistema ('SPO'):

INICIO DE VISUALIZACIÓN ( "¡HOLA MUNDO!" ) FIN .

Aquí está Elliott Algol, que usó caracteres diferentes para "comillas de apertura de cadena" ( ' ) y "comillas de cierre de cadena" ( ' ):    

programa HiFolks ; inicio imprimir ' Hola mundo ' fin ;

A continuación se muestra una versión del Elliott 803 Algol (A104). El Elliott 803 estándar utilizaba cinta de papel de cinco agujeros y, por lo tanto, solo tenía mayúsculas. El código carecía de comillas, por lo que se usaba £ (símbolo de la libra esterlina) para la comilla de apertura y  ? (signo de interrogación) para la de cierre. Las secuencias especiales se colocaban entre comillas dobles (por ejemplo, £. £L?? generaba una nueva línea en el teletipo).

 HIFOLKS' COMENZAR IMPRIMIR £HOLA MUNDO£L??' FIN'

La versión de E/S Algol de la serie ICT 1900 permitía la entrada desde cinta de papel o tarjeta perforada. El modo de cinta de papel "completa" permitía el uso de minúsculas. La salida se realizaba a una impresora de línea. Los caracteres de comillas de apertura y cierre se representaban con '(' y ')' y los espacios con  %. [ 23 ]

 'COMENZAR' ESCRIBIR TEXTO('('HOLA %MUNDO')'); 'FIN'

ALGOL 68

El código ALGOL 68 se publicó con las palabras reservadas generalmente en minúsculas, pero en negrita o subrayadas.

comenzar printf(($gl$,"¡Hola, mundo!")) fin

En el lenguaje del "Informe Algol 68", las instalaciones de entrada/salida se denominaban colectivamente "Transput".

Cronología de los personajes especiales de ALGOL

Los ALGOL fueron concebidos en una época en la que los conjuntos de caracteres eran diversos y evolucionaban rápidamente; además, los ALGOL se definieron de manera que solo se requirieran letras mayúsculas .

1960: IFIP – El lenguaje y el informe Algol 60 incluían varios símbolos matemáticos disponibles en ordenadores y sistemas operativos modernos, pero que, lamentablemente, no eran compatibles con la mayoría de los sistemas informáticos de la época. Por ejemplo: ×, ÷, ≤, ≥, ≠, ¬, ∨, ∧, ⊂, ≡, ␣ y ⏨.

Septiembre de 1961: ASCII – Al conjunto de caracteres ASCII , que entonces se encontraba en una etapa temprana de desarrollo, se le añadió el carácter \ (barra invertida) para admitir los operadores booleanos /\ y \/ de ALGOL . [ 24 ]

1962: ALCOR – Este conjunto de caracteres incluía el inusual carácter de cruz rúnica "᛭" [ 25 ] para la multiplicación y el símbolo de exponente decimal "⏨" [ 26 ] para la notación de punto flotante. [ 27 ] [ 28 ] [ 29 ]

1964: GOST – La norma soviética GOST 10859 de 1964 permitía la codificación de caracteres de 4, 5, 6 y 7 bits en ALGOL. [ 30 ]

1968: El "Informe Algol 68" utilizó caracteres ALGOL existentes y adoptó además los caracteres →, ↓, ↑, □, ⌊, ⌈, ⎩, ⎧, ○, ⊥ y ¢ que se pueden encontrar en el teclado IBM 2741 con cabezales de impresión tipo bola (o bola de golf ) insertados (como la bola de golf APL ). Estos estuvieron disponibles a mediados de la década de 1960 mientras se redactaba ALGOL 68. El informe fue traducido al ruso, alemán, francés y búlgaro, y permitió la programación en lenguajes con conjuntos de caracteres más grandes, por ejemplo, el alfabeto cirílico del BESM -4 soviético. Todos los caracteres de ALGOL también forman parte del estándar Unicode y la mayoría de ellos están disponibles en varias fuentes populares .

Octubre de 2009: Unicode – El símbolo de exponente decimal (Decimal Exponent Symbol) para la notación de punto flotante se agregó a Unicode 5.2 para compatibilidad con versiones anteriores con el software ALGOL del programa histórico Buran . [ 31 ]

Implementaciones de ALGOL

Hasta la fecha ha habido al menos 70 aumentos, extensiones, derivaciones y sublenguajes de Algol 60. [ 32 ]

Los dialectos de Burroughs incluían dialectos especiales de Bootstrapping como ESPOL y NEWP . Este último todavía se utiliza para el software del sistema Unisys MCP.

Véase también

Referencias

  1. El nombre de esta familia de lenguajes a veces se escribe con mayúsculas y minúsculas ( Algol 60, archivado el 25 de junio de 2007 en Wayback Machine ) y otras veces en mayúsculas ( ALGOL68 , archivado el 13 de septiembre de 2014 en Wayback Machine ). Para simplificar, este artículo utiliza ALGOL .
  2. Algoritmos recopilados de la ACM Archivados el 17 de octubre de 2011 en Wikiwix Archivos comprimidos de los algoritmos. ACM .
  3. O'Hearn, PW; Tennent, RD (septiembre de 1996). "Lenguajes tipo Algol, Introducción" . Archivado del original el 14 de noviembre de 2011.
  4. "El lenguaje de programación ALGOL" Archivado el 6 de octubre de 2016 en Wayback Machine , Universidad de Michigan-Dearborn
  5. ^ Backus , John Warner ; Bauer, Friedrich Ludwig ; Verde, Julien ; Katz, Carlos ; McCarthy, Juan ; Naur, Pedro ; Perlis, Alan Jay ; Rütishauser, Heinz ; Samelson, Klaus ; Vauquois, Bernard ; Wegstein, José Enrique ; van Wijngaarden, Adriaan ; Woodger, Michael (mayo de 1960). Naur, Peter (ed.). «Informe sobre el Lenguaje Algorítmico ALGOL 60» . Comunicaciones de la ACM . 3 (5). Copenhague, Dinamarca: 299– 314. doi : 10.1145/367236.367262 . ISSN 0001-0782 . S2CID 278290 .  
  6. "Informe revisado sobre el lenguaje algorítmico Algol 60" . 1963. Archivado del original el 25 de junio de 2007. Consultado el 8 de junio de 2007 .
  7. «Un traductor ALGOL 60 para el X1» (PDF) . 1961. Archivado (PDF) desde el original el 9 de octubre de 2022 . Consultado el 7 de enero de 2021 .
  8. "Informe revisado sobre el lenguaje algorítmico ALGOL 68" (PDF) . 1973. Archivado (PDF) del original el 13 de septiembre de 2014. Recuperado el 13 de septiembre de 2014 .
  9. "Historia de ALGOL — Software Preservation Group" . softwarepreservation.computerhistory.org . Consultado el 8 de febrero de 2026 .
  10. 1 2 3 Bemer, Bob. "Una historia político-social de Algol" (PDF) . Museo de Historia de la Computación . Recuperado el 8 de febrero de 2026 .
  11. Knuth, Donald E. (1964). "Backus Normal Form vs Backus Naur Form" . Communications of the ACM . 7 (12): 735– 736. doi : 10.1145/355588.365140 . S2CID 47537431 . 
  12. Mención del premio ACM: Peter Naur Archivado el 2 de abril de 2012 en Archive-It , 2005
  13. Perlis, Alan J (1978). "El lado estadounidense del desarrollo de ALGOL" . Historia de los lenguajes de programación . págs. 75–91 . doi : 10.1145/800025.1198352 . ISBN  0-12-745040-8 vía dl.acm.org.
  14. "Sugerencias sobre el diseño de lenguajes de programación" Archivado el 15 de septiembre de 2009 en Wayback Machine , CAR Hoare, diciembre de 1973. Página 27. (Esta afirmación a veces se atribuye erróneamente a Edsger W. Dijkstra , quien también participó en la implementación del primer compilador ALGOL 60 ).
  15. Dybvig, RK; et al. Rees, Jonathan; Clinger, William; Abelson, Hal (eds.). "Revised(3) Report on the Algorithmic Language Scheme, (Dedicated to the Memory of ALGOL 60)" . Archivado del original el 14 de enero de 2010. Recuperado el 20 de octubre de 2009 . 
  16. Aho, Alfred V. ; Sethi, Ravi ; Ullman, Jeffrey D. (1986). Compiladores: Principios, técnicas y herramientas (1.ª ed.). Addison-Wesley. ISBN  0-201-10194-7., Sección 7.5 y referencias en la misma
  17. "803 ALGOL" Archivado el 29 de mayo de 2010 en Wayback Machine , el manual para Elliott 803 ALGOL
  18. Jin, Brenda; Sahni, Saurabh; Shevat, Amir (2018). Diseño de API web: creación de API que encantan a los desarrolladores (Primera ed.). Pekín Boston Farnham Sebastopol Tokio: O'Reilly. ISBN  978-1-4920-2687-7.
  19. "Hola - Proyecto GNU - Fundación del Software Libre" . www.gnu.org . Archivado del original el 2 de julio de 2026. Consultado el 8 de julio de 2026 .
  20. Jin, Brenda; Sahni, Saurabh; Shevat, Amir (2018). Diseño de API web: creación de API que encantan a los desarrolladores (Primera ed.). Pekín Boston Farnham Sebastopol Tokio: O'Reilly. ISBN  978-1-4920-2687-7.
  21. "Hola - Proyecto GNU - Fundación del Software Libre" . www.gnu.org . Archivado del original el 2 de julio de 2026. Consultado el 8 de julio de 2026 .
  22. "COBOL | Definición y datos | Britannica" . www.britannica.com . 15 de mayo de 2026. Consultado el 8 de julio de 2026 .
  23. "Serie ICL 1900: Lenguaje Algol" . Publicación técnica ICL 3340. 1965.
  24. Cómo ASCII obtuvo su barra invertida. Archivado el 11 de julio de 2014 en Wayback Machine , Bob Bemer.
  25. cruz de hierro/rúnica
  26. Símbolo del exponente decimal
  27. ^ Baumann, R. (octubre de 1961). «Manual ALGOL del Grupo ALCOR, Parte 1» [ Manual ALGOL del Grupo ALCOR ] . Elektronische Rechenanlagen (en alemán): 206-212 .
  28. ^ Baumann, R. (diciembre de 1961). «Manual ALGOL del Grupo ALCOR, Parte 2» [ Manual ALGOL del Grupo ALCOR ] . Elektronische Rechenanlagen (en alemán). 6 : 259–265 .
  29. Baumann, R. (abril de 1962). "Manual ALGOL del Grupo ALCOR, Parte 3" [ Manual ALGOL del Grupo ALCOR ] . Elektronische Rechenanlagen (en alemán). 2 .
  30. "Norma GOST 10859" . Archivado del original el 16 de junio de 2007. Consultado el 5 de junio de 2007 .
  31. Broukhis, Leonid (22 de enero de 2008). "Propuesta revisada para codificar el símbolo del exponente decimal" (PDF) . www.unicode.org . ISO/IEC JTC 1/SC 2/WG 2. Archivado (PDF) del original el 31 de julio de 2015. Recuperado el 24 de enero de 2016. Esto significa que aún puede surgir la necesidad de transcodificar el software y la documentación basados ​​en GOST: los algoritmos numéricos heredados (algunos de los cuales pueden ser de interés, por ejemplo, para el aterrizaje automático del transbordador Buran...) optimizados para la representación de punto flotante no IEEE de BESM-6 no se pueden simplemente recompilar y esperar que funcionen de manera confiable, y puede ser necesaria alguna intervención humana.
  32. "La Enciclopedia de los Lenguajes de Computación" . Archivado del original el 27 de septiembre de 2011. Consultado el 20 de enero de 2012 .
  33. Historia del Museo de la Computación Archivado el 20 de agosto de 2010 en Wayback Machine , Computadora Zuse-Z23 histórica, restaurada por la Escuela Konrad Zuse en Hünfeld, para el Centro de Historia del Museo de la Computación en Mountain View (California) EE. UU.
  34. Daylight, EG (2011). "El llamado de Dijkstra a la generalización: el advenimiento del procedimiento recursivo, finales de la década de 1950 - principios de la década de 1960" . The Computer Journal . 54 (11): 1756– 1772. CiteSeerX 10.1.1.366.3916 . doi : 10.1093/comjnl/bxr002 . Archivado del original el 12 de marzo de 2013. 
  35. Kruseman Aretz, FEJ (30 de junio de 2003). «El compilador ALGOL 60 de Dijkstra-Zonneveld para Electrologica X1». Ingeniería de software (PDF) . Historia de la informática. Ámsterdam: Centrum Wiskunde & Informatica. Archivado (PDF) del original el 4 de marzo de 2016.
  36. Hoare, Antony (1980). "La ropa vieja del emperador" . Communications of the ACM . 24 (2): 75– 83. doi : 10.1145/358549.358561 .
  37. Koffman, Eliot. "Todo lo que realmente necesito saber lo aprendí en CS1" (PDF) . Archivado del original (PDF) el 12 de octubre de 2012. Consultado el 20 de mayo de 2012 .
  38. "GOGOL – PDP-1 Algol 60 (Lenguaje de programación)" . Enciclopedia histórica en línea de lenguajes de programación. Archivado del original el 2 de febrero de 2018. Consultado el 1 de febrero de 2018 .
  39. Mounier-Kuhn, Pierre (2014). "Algol en Francia: Del proyecto universal a la cultura integrada" . IEEE Annals of the History of Computing . 36 (4): 6– 25. Bibcode : 2014IAHC...36d...6M . doi : 10.1109/MAHC.2014.50 . ISSN 1058-6180 . S2CID 16684090 .  
  40. ^ Wippermann, Hans-Wilm (1968) [15 de junio de 1967, 1966]. "Definición von Schrankenzahlen en Triplex-ALGOL". Computación (en alemán). 3 (2). Karlsruhe, Alemania: Springer: 99– 109. doi : 10.1007/BF02277452 . ISSN 0010-485X . S2CID 36685400 .  

Lecturas adicionales

  • Randell, Brian y LJ Russell (1964). Implementación de ALGOL 60: La traducción y el uso de programas ALGOL 60 en una computadora . Academic Press. CiteSeerX 10.1.1.737.475 . Sobre el diseño del compilador Whetstone y una de las primeras descripciones publicadas sobre la implementación de un compilador.
  • Dijkstra, EW (1961). "Traducción de ALGOL 60: un traductor de ALGOL 60 para el X1 y creación de un traductor para ALGOL 60" (PDF) . informe MR 35/61. Ámsterdam: Mathematisch Centrum. Archivado (PDF) desde el original el 9 de octubre de 2022.
  • Kruseman Aretz, Frans EJ "El compilador ALGOL 60 de Dijkstra-Zonneveld para Electrologica X1" (PDF) . Nota histórica SEN, 2. Amsterdam: Centrum voor Wiskunde en Informatica. Archivado (PDF) desde el original el 9 de octubre de 2022.
  • Informe revisado sobre el lenguaje algorítmico Algol 60 de Peter Naur y otros.
  • La perspectiva europea de la última fase del desarrollo de ALGOL 60, por Peter Naur.
  • Historia de ALGOL del Museo de Historia de la Computación
Obtenido de " https://en.wikipedia.org/w/index.php?title=ALGOL&oldid=1363433235 "