ALGOL 60

Miembro de la familia ALGOL de lenguajes de programación informática
ALGOL 60
Paradigmasprocedimental , imperativo , estructurado
FamiliaALGOL
Diseñado porBackus , Bauer , Green, Katz , McCarthy , Naur , Perlis , Rutishauser , Samelson , van Wijngaarden , Vauquois , Wegstein , Woodger
Apareció por primera vez1960 ; hace 64 años ( 1960 )
Disciplina de mecanografíaEstático , fuerte
AlcanceLéxico
Influenciado por
ALGOL 58
Influenciado
La mayoría de los lenguajes imperativos posteriores (los llamados lenguajes tipo ALGOL ), por ejemplo, PL/I , Simula , CPL , Pascal , Ada , C

ALGOL 60 (abreviatura de Algorithmic Language 1960 ) es un miembro de la familia ALGOL de lenguajes de programación informática . Fue la continuación de ALGOL 58, que había introducido bloques de código y los beginpares endy para delimitarlos, lo que representó un avance clave en el auge de la programación estructurada . ALGOL 60 fue uno de los primeros lenguajes que implementó definiciones de funciones (que podían invocarse de forma recursiva). Las definiciones de funciones de ALGOL 60 podían anidarse unas dentro de otras (lo que fue introducido por primera vez por cualquier lenguaje de programación), con alcance léxico . Dio lugar a muchos otros lenguajes, incluidos CPL , PL/I , Simula , BCPL , B , Pascal y C. Prácticamente todos los ordenadores de la época tenían un lenguaje de programación de sistemas basado en los conceptos de ALGOL 60.

Niklaus Wirth basó su propio ALGOL W en ALGOL 60 antes de pasar a desarrollar Pascal . Algol-W estaba destinado a ser la próxima generación de ALGOL, pero el comité de ALGOL 68 decidió un diseño más complejo y avanzado en lugar de un ALGOL 60 simplificado y depurado. Las versiones oficiales de ALGOL reciben su nombre del año en que se publicaron por primera vez. ALGOL 68 es sustancialmente diferente de ALGOL 60 y fue criticado en parte por serlo, por lo que en general "ALGOL" se refiere a dialectos de ALGOL 60.

Normalización

ALGOL 60 – junto con COBOL – fueron los primeros lenguajes en buscar la estandarización.

  • ISO 1538:1984 Lenguajes de programación – ALGOL 60 (estabilizado)
  • ISO/TR 1672:1977 Representación de hardware de símbolos básicos de ALGOL... (ahora retirada)

Historia

ALGOL 60 fue utilizado principalmente por científicos informáticos de investigación en Estados Unidos y Europa. Su uso en aplicaciones comerciales se vio obstaculizado por la ausencia de facilidades de entrada/salida estándar en su descripción y la falta de interés en el lenguaje por parte de los grandes fabricantes de computadoras. 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 de los lenguajes.

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, renombrado como forma Backus–Naur . [1]

Peter Naur: "Como editor del Boletín ALGOL, me involucré en los debates internacionales sobre el lenguaje y fui seleccionado para ser miembro del grupo de diseño del lenguaje europeo en noviembre de 1959. En esta función, fui el editor del informe ALGOL 60, elaborado como resultado de la reunión ALGOL 60 en París en enero de 1960". [2]

A la reunión en París (del 11 al 16 de enero) asistieron las siguientes personas:

Alan Perlis describió con gran viveza la reunión: "Las reuniones eran agotadoras, interminables y estimulantes. Uno se enfadaba cuando sus buenas ideas eran descartadas junto con las malas de los demás. Sin embargo, la diligencia persistió durante todo el período. La química entre los 13 era excelente".

El lenguaje originalmente no incluía la recursión . Se insertó en la especificación en el último momento, en contra de los deseos de algunos miembros del comité. [3]

ALGOL 60 inspiró a muchos lenguajes que lo siguieron. Tony Hoare comentó: "He aquí un lenguaje tan adelantado a su tiempo que no sólo fue una mejora respecto de sus predecesores sino también respecto de casi todos sus sucesores". [4] [5]

Cronología de la implementación de ALGOL 60

Hasta la fecha ha habido al menos 70 ampliaciones, extensiones, derivaciones y sublenguajes de ALGOL 60. [6]

NombreAñoAutorEstadoDescripciónCPU de destino
X1 ALGOL60Agosto de 1960 [7]Edsger W. Dijkstra y Jaap A. Zonneveld Países BajosPrimera implementación de ALGOL 60 [8]Electrológica X1
Algol1960 [9]Edgar T. Irons EE.UUALGOL 60CDC 1604
Burroughs Algol
(Varias variantes)
1961Corporación Burroughs (con la participación de Hoare , Dijkstra y otros) EE.UUBase de las computadoras Burroughs (y ahora basadas en Unisys MCP )Sistemas grandes
y sistemas de gama media de Burroughs
Caso ALGOL1961 EE.UUSimula fue contratado originalmente como una extensión de simulación del caso ALGOLUNIVAC1107
GÓGOL1961William M. McKeeman EE.UUPara el sistema de tiempo compartido ODINPDP-1
ALGOL DASK1961Peter Naur y Jørn Jensen DinamarcaALGOL 60DASK en Regnecentralen
ALGOL SONRISA1962Torgil Ekman, Carl-Erik Fröberg SueciaALGOL 60SMIL en la Universidad de Lund
GIER ALGOL1962Peter Naur y Jørn Jensen DinamarcaALGOL 60GIER en Regnecentralen
ALGOL 30 de Dartmouth [10]1962Thomas Eugene Kurtz , Stephen J. Garland, Robert F. Hargraves, Anthony W. Knapp y Jorge Llacer EE.UUALGOL 60LGP-30
Alcor Maguncia 20021962Ursula Hill-Samelson y Hans Langmaack AlemaniaSiemens 2002
ALCOR-Illinois 70901962
[11] [12]
Manfred Paul, Hans Rüdiger Wiehle, David Gries y Rudolf Bayer Estados Unidos , Alemania Occidental ALGOL 60
Implementado en Illinois y en el TH München , 1962-1964
IBM 7090
USS 90 Algol1962L. Petrone Italia
ALGOL de Elliott1962Coche Hoare Reino UnidoSe discutió en su conferencia del Premio Turing de 1980Elliott 803 y Elliott 503
ALGOL 601962Roland Strobel [13] Alemania del EsteImplementado por el Instituto de Matemáticas Aplicadas, Academia Alemana de Ciencias en BerlínAparato de medición Zeiss ZRA 1
ALGOL 601962Bernard Vauquois , Luis Bolliet [14] FranciaInstitut d'Informatique et Mathématiques Appliquées de Grenoble (IMAG) y Compagnie des Machines BullToro Gamma 60
Traductor de Algol1962G. van der Mey y WL van der Poel Países BajosStaatsbedrijf der Posterijen, Telegrafie y TelefonieCEBRA
Kidsgrove Algol1963El mariscal de campo Duncan Reino UnidoCompañía eléctrica inglesa KDF9
CUERO CABELLUDO [15]1963Stephen J. Garland, Anthony W. Knapp y Thomas Eugene Kurtz EE.UUProcesador ALgol autónomo para un subconjunto de ALGOL 60LGP-30
Valgol1963Val Schorre EE.UUUna prueba del compilador META II
FP6000 Algol1963Roger Moore CanadáEscrito para Saskatchewan Power CorpFP6000
Piedra de afilar1964Brian Randell y Lawford John Russell Reino UnidoDivisión de Energía Atómica de English Electric Company. Precursora de las implementaciones de Ferranti Pegasus , National Physical Laboratories ACE y English Electric DEUCECompañía eléctrica inglesa KDF9
ALGOL 601964Jean-Claude Boussard [16] FranciaInstituto de informática y matemáticas aplicadas de Grenoble  [fr]IBM 7090
ALGOL-GENIO1964Barrio Langefors SueciaSe agregaron registros de datos inspirados en COBOL y E/SDatos del avión Saab D-21
ALGOL 601965Claude Pair  [en] [17] FranciaCentro de cálculo de la Facultad de Ciencias de NancyIBM 1620
ALGOL de Dartmouth1965Stephen J. Garland, Sarr Blumson y Ron Martin EE.UUALGOL 60Sistema de tiempo compartido de Dartmouth para GE 235
NU ALGOL1965 NoruegaUNIVAC
ALGOL 601965 [18]FEJ Kruseman Aretz Países BajosCompilador MC para EL-X8Electrológica X8
ÁLGEKO1965 Unión SoviéticaMinsk-22АЛГЭК, basado en ALGOL 60 y soporte COBOL , para tareas económicas
Malgol1966público. A. Viil, M Kotli y M. Rakhendi, RSS de EstoniaMinsk-22
ALGAMAS1967Grupo GAMS (ГАМС, группа автоматизации программирования для машин среднего класса), cooperación de Comecon Academies of ScienceComeconMinsk-22 , más tarde ES EVM , BESM
ALGOL/ZAM1967 PoloniaComputadora ZAM polaca
Algol chino1972 PorcelanaCaracteres chinos, expresados ​​mediante el sistema de símbolos
Director General/L1972 EE.UUFamilia de ordenadores DG Eclipse
NARIZ1990Erik Schoenfelder AlemaniaIntérpreteLinux y MS Windows
MARTE2000Andrés Makhorin RusiaTraductor de ALGOL 60 a CTodas las CPU compatibles con la colección de compiladores GNU; MARST es parte del proyecto GNU

Los dialectos de Burroughs incluían dialectos de programación de sistemas especiales como ESPOL y NEWP .

Propiedades

ALGOL 60, tal como se definió oficialmente, no tenía funciones de E/S; las implementaciones definían las suyas de maneras que rara vez eran compatibles entre sí. Por el contrario, ALGOL 68 ofrecía una amplia biblioteca de funciones de transput (término de ALGOL 68 para entrada/salida).

ALGOL 60 proporcionó dos estrategias de evaluación para el paso de parámetros : la llamada común por valor y la llamada por nombre . La declaración del procedimiento especificaba, para cada parámetro formal, cuál se iba a utilizar: valor especificado para la llamada por valor y omitido para 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 una matriz que está indexada por esa misma variable entera. [19] Piense en pasar un puntero a swap(i, A[i]) en una función. Ahora que cada vez que se hace referencia a swap, se reevalúa. Digamos i := 1 y A[i] := 2, por lo que 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 los interesantes " procesadores " que se utilizan para implementarla. Donald Knuth ideó la " prueba man or boy " para separar los compiladores que implementaban correctamente la " recursión y las referencias no locales". Esta prueba contiene un ejemplo de llamada por nombre.

ALGOL 60 Palabras reservadas e identificadores restringidos

Hay 35 palabras reservadas de este tipo en el sublenguaje estándar de Burroughs Large Systems :

  • ALPHA
  • ARRAY
  • BEGIN
  • BOOLEAN
  • COMMENT
  • CONTINUE
  • DIRECT
  • DO
  • DOUBLE
  • ELSE
  • END
  • EVENT
  • FALSE
  • FILE
  • FOR
  • FORMAT
  • GO
  • IF
  • INTEGER
  • LABEL
  • LIST
  • LONG
  • OWN
  • POINTER
  • PROCEDURE
  • REAL
  • STEP
  • SWITCH
  • TASK
  • THEN
  • TRUE
  • UNTIL
  • VALUE
  • WHILE
  • ZIP

Hay 71 identificadores restringidos de este tipo en el sublenguaje estándar Burroughs Large Systems:

  • ACCEPT
  • AND
  • ATTACH
  • BY
  • CALL
  • CASE
  • CAUSE
  • CLOSE
  • DEALLOCATE
  • DEFINE
  • DETACH
  • DISABLE
  • DISPLAY
  • DIV
  • DUMP
  • ENABLE
  • EQL
  • EQV
  • EXCHANGE
  • EXTERNAL
  • FILL
  • FORWARD
  • GEQ
  • GTR
  • IMP
  • IN
  • INTERRUPT
  • IS
  • LB
  • LEQ
  • LIBERATE
  • LINE
  • LOCK
  • LSS
  • MERGE
  • MOD
  • MONITOR
  • MUX
  • NEQ
  • NO
  • NOT
  • ON
  • OPEN
  • OR
  • OUT
  • PICTURE
  • PROCESS
  • PROCURE
  • PROGRAMDUMP
  • RB
  • READ
  • RELEASE
  • REPLACE
  • RESET
  • RESIZE
  • REWIND
  • RUN
  • SCAN
  • SEEK
  • SET
  • SKIP
  • SORT
  • SPACE
  • SWAP
  • THRU
  • TIMES
  • TO
  • WAIT
  • WHEN
  • WITH
  • WRITE

y también los nombres de todas las funciones intrínsecas.

Operadores estándar

PrioridadOperador
primera aritméticaprimero↑ (poder)
segundo×, / (real), ÷ (entero)
tercero+, -
segundo<, ≤, =, ≥, >, ≠
tercero¬ (no)
cuatro∧ (y)
quinto∨ (o)
sexto⊃ (implicación)
séptimo≡ (equivalencia)

Ejemplos y problemas de portabilidad

Comparaciones de ejemplos de código

ALGOL 60

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 mayor elemento 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;comienza  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]); yo := p; k := q Fin Fin Absmax

Las implementaciones difieren en la forma en que se debe escribir el texto en negrita. La palabra 'INTEGER', incluidas las comillas, se debe utilizar en algunas implementaciones en lugar de entero , como se indica arriba, lo que la designa como una palabra clave especial.

A continuación se muestra un ejemplo de cómo producir una tabla utilizando Elliott 803 ALGOL: [20]

'PRUEBA DE ALGOL DE PUNTA 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 := SEÑADO(A)' C := COS(A)' PERFORADORA DE IMPRESIÓN (3) , MISMA LINEA , ALINEADA (1,6) , A, B, C' FIN' FIN'

Familia ALGOL 60

Como ALGOL 60 no tenía funciones de E/S, no existe un programa de Hola mundo portable en ALGOL. El siguiente programa podría (y aún lo hará) compilarse y ejecutarse en una implementación de ALGOL para un mainframe Unisys A-Series, y es una simplificación directa del código tomado de The Language Guide [21] en la página del programa de ejemplo de ALGOL ¡Hola mundo! del Departamento de Ciencias de la Información y Computación de la Universidad de Michigan - Dearborn. [22]

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

Donde * etc. representa una especificación de formato como la utilizada en FORTRAN, p. ej. [23]

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

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

Un programa aún más simple que utiliza la declaración Display:

INICIO  PANTALLA ( "¡HOLA MUNDO!" )  FIN .

Un ejemplo alternativo, que utiliza la entrada/salida de Elliott Algol, es el siguiente. Elliott Algol utilizó caracteres diferentes para "abrir-comillas-de-cadena" y "cerrar-comillas-de-cadena", representados aquí por  ' y  ' .

 programa HiFolks ; comenzar imprimir ' Hola mundo ' fin ;      

Aquí hay una versión para el Elliott 803 Algol (A104). El Elliott 803 estándar usaba cinta de papel de 5 agujeros y, por lo tanto, solo tenía mayúsculas. El código carecía de caracteres de comillas, por lo que se usaba £ (signo de almohadilla) para las comillas de apertura y ? (signo de interrogación) para las comillas de cierre. Las secuencias especiales se colocaban entre comillas dobles (por ejemplo, £L?? producía una nueva línea en el teleimpresor).

 Gente de alta sociedad COMENZAR IMPRIMIR £HOLA MUNDO£L??' FIN'

La versión de E/S de Algol de la serie ICT 1900 permitía la entrada desde cinta de papel o tarjeta perforada. El modo "completo" de cinta de papel permitía el uso de minúsculas. La salida se realizaba a una impresora de línea. Nótese el uso de '(', ')' y %. [24]

 'PROGRAMA' (HOLA) 'COMENZAR' 'COMENTARIO' ABRIR COMILLA ES '(', CERRAR ES ')', EL ESPACIO IMPRIMIBLE TIENE QUE SE ESCRIBE COMO % PORQUE SE IGNORARON LOS ESPACIOS; ESCRIBIR TEXTO('('HOLA%MUNDO')'); 'FIN' 'FINALIZAR'

SALTO

LEAP es una extensión del lenguaje de programación ALGOL 60 que proporciona una memoria asociativa de triples. Los tres elementos de un triple indican la asociación de un atributo de un objeto con un valor específico. LEAP fue creado por Jerome Feldman (Universidad de California, Berkeley) y Paul Rovner (MIT Lincoln Lab) en 1967. LEAP también se implementó en SAIL.

Véase también

Referencias

  1. ^ Knuth, Donald E. (diciembre de 1964). "Forma normal de Backus frente a forma de Backus Naur". Comunicaciones de la ACM . 7 (12): 735–6. doi : 10.1145/355588.365140 . S2CID  47537431.
  2. ^ Mención del premio ACM / Peter Naur, 2005
  3. ^ van Emden, Maarten (2014). "Cómo la recursión llegó a la programación: una historia de intriga, traición y semántica avanzada de lenguajes de programación". El lugar de un programador .
  4. ^ Hoare, CAR (diciembre de 1973). "Consejos sobre el diseño de lenguajes de programación" (PDF) . pág. 27.(Esta afirmación a veces se atribuye erróneamente a Edsger W. Dijkstra , también involucrado en la implementación del primer compilador ALGOL 60 ).
  5. ^ Abelson, Hal ; Dybvig, RK ; et al. Rees, Jonathan; Clinger, William (eds.). "Informe revisado (3) sobre el esquema de lenguaje algorítmico (dedicado a la memoria de ALGOL 60)" . Consultado el 20 de octubre de 2009 .
  6. ^ La enciclopedia de lenguajes informáticos Archivado el 27 de septiembre de 2011 en Wayback Machine .
  7. ^ Daylight, EG (2011). "El grito de guerra de Dijkstra en favor de la generalización: el advenimiento del procedimiento recursivo, finales de los años 1950 y principios de los años 1960". The Computer Journal . 54 (11): 1756–1772. doi :10.1093/comjnl/bxr002.
  8. ^ Kruseman Aretz, FEJ (30 de junio de 2003). "El compilador Dijkstra-Zonneveld ALGOL 60 para Electrologica X1" (PDF) . Ingeniería de software . Historia de la informática. Ámsterdam: Centrum Wiskunde & Informatica. ISSN  1386-3711. Archivado desde el original (PDF) el 17 de enero de 2004.
  9. ^ Irons, Edgar T., Un compilador dirigido por sintaxis para ALGOL 60, Communications of the ACM, vol. 4, pág. 51. (enero de 1961)
  10. ^ Kurtz, Thomas E. (1978). "BASIC". Historia de los lenguajes de programación . págs. 515–537. doi : 10.1145/800025.1198404 . ISBN . 0127450408.
  11. ^ Gries, D.; Paul, M.; Wiehle, H. R (1965). "Algunas técnicas utilizadas en el ALCOR Illinois 7090". Comunicaciones de la ACM . 8 (8): 496–500. doi : 10.1145/365474.365511 . S2CID  18365024.
  12. ^ Bayer, R.; Gries, D.; Paul, M.; Wiehle, HR (1967). "El vertedero post mortem de ALCOR Illinois 7090/7094". Comunicaciones de la ACM . 10 (12): 804–808. doi : 10.1145/363848.363866 . S2CID  3783605.
  13. ^ Rechenautomaten mit Trommelspeicher, Förderverein der Technischen Sammlung Dresden
  14. ^ Mounier-Kuhn, Pierre (2014). "Algol en Francia: del proyecto universal a la cultura integrada". IEEE Annals of the History of Computing . 36 (4): 6. ISSN  1058-6180.
  15. ^ Kurtz, op. cit. , página 517.
  16. ^ Boussard, Jean-Claude (junio de 1964). Etude et réalisation d'un compilateur Algol60 sur calculador éléctronique du type IBM 7090/94 et 7040/44 [ Diseño e implementación de un compilador Algol60 en calculadoras electrónicas IBM 7090/94 y 7040/44 ] (Doctor) (en francés). Universidad Joseph-Fourier - Grenoble I.
  17. ^ Claude Pair (27 de abril de 1965). Descripción del compilador ALGOL . Grupo de usuarios de la región europea 1620 . IBM.
  18. ^ Kruseman Aretz, FEJ (1973). Un compilador de Algol 60 en Algol 60 . Tratados del Centro de Matemáticas. Ámsterdam: Mathematisch Centrum.
  19. ^ Aho, Alfred V. ; Sethi, Ravi ; Ullman, Jeffrey D. (1986). Compiladores: principios, técnicas y herramientas (1.ª ed.). Addison-Wesley. ISBN 978-0-201-10194-2., Sección 7.5 y referencias allí contenidas
  20. ^ "803 ALGOL", el manual de Elliott 803 ALGOL
  21. ^ "El lenguaje de programación ALGOL". www.engin.umd.umich.edu . Archivado desde el original el 10 de febrero de 2010 . Consultado el 11 de enero de 2022 .
  22. ^ "¡Hola mundo! Programa de ejemplo". www.engin.umd.umich.edu . Archivado desde el original el 4 de febrero de 2010. Consultado el 11 de enero de 2022 .
  23. ^ Ejemplo de Fortran#"¡Hola, mundo!"
  24. ^ "Serie ICL 1900: Lenguaje Algol". Publicación técnica ICL 3340. 1965.

Lectura adicional

  • Dijkstra, Edsger W. (1961). "Traducción de ALGOL 60: un traductor de ALGOL 60 para X1 y elaboración de un traductor para ALGOL 60 (PDF) (informe técnico). Ámsterdam: Mathematisch Centrum. 35.
  • Randell, Brian ; Russell, Lawford John (1964). Implementación de ALGOL 60: la traducción y el uso de programas de ALGOL 60 en una computadora . Prensa académica. OCLC  526731.El diseño del compilador Whetstone . Una de las primeras descripciones publicadas sobre la implementación de un compilador. Consulte los artículos relacionados: Whetstone Algol Revisited y The Whetstone KDF9 ALGOL Translator de Brian Randell
  • Goos, Gerhard [en alemán] (7 de agosto de 2017). Geschichte der deutschsprachigen Informatik - Programmiersprachen und Übersetzerbau [ Historia de la informática en los países de habla alemana - Lenguajes de programación y diseño de compiladores ] (PDF) (en alemán). Karlsruhe, Alemania: Fakultät für Informatik, Instituto Tecnológico de Karlsruhe (KIT). Archivado (PDF) desde el original el 19 de mayo de 2022 . Consultado el 14 de noviembre de 2022 .(11 páginas)
  • Informe revisado sobre el lenguaje algorítmico ALGOL 60 de Peter Naur, et al. Definición de ALGOL
  • Un resumen de sintaxis BNF de ALGOL 60
  • "Las viejas ropas del Emperador": discurso de Hoare en el Premio Turing de la ACM de 1980, que analiza la historia de ALGOL y su participación
  • MARST, un traductor gratuito de ALGOL a C
  • Una implementación de ALGOL 60 para el FP6000 Archivado el 25 de julio de 2020 en Wayback Machine Discusión de algunos problemas de implementación.
  • Naur, Peter (agosto de 1978). "El lado europeo de la última fase del desarrollo de ALGOL 60". ACM SIGPLAN Notices . 13 (8): 15–44. doi :10.1145/960118.808370. S2CID  15552479.
  • La Universidad de Edimburgo escribió compiladores para Algol60 (posteriormente actualizados para Algol60M) basados ​​en sus compiladores Atlas Autocode, que inicialmente se basaron en Atlas para el KDF-9. Los compiladores de Edimburgo generaron código para el ICL1900, el ICL4/75 (un clon del IBM360) y el ICL2900. Aquí se encuentra el BNF para Algol60 Archivado el 15 de mayo de 2020 en Wayback Machine y el código fuente del compilador ICL2900 Archivado el 15 de mayo de 2020 en Wayback Machine , documentación de la biblioteca Archivado el 15 de mayo de 2020 en Wayback Machine y un conjunto considerable de pruebas Archivado el 15 de mayo de 2020 en Wayback Machine que incluyen las pruebas de Brian Wichmann. Archivado el 15 de mayo de 2020 en Wayback Machine . También existe un traductor de nivel de fuente de Algol60 a Atlas Autocode bastante superficial Archivado el 15 de mayo de 2020 en Wayback Machine .
  • Museo de Retrocomputación de Eric S. Raymond , entre otros un enlace al intérprete NASE ALGOL 60 escrito en C.
  • El intérprete NASE
  • Historias del B5000 y de la gente que estuvo allí: una computadora ALGOL dedicada [1], [2]
  • Bottenbruch, Hermann (1961). Estructura y uso de ALGOL 60 (informe). doi : 10.2172/4020495 . OSTI  4020495.
  • NUMAL Una biblioteca de procedimientos numéricos en ALGOL 60 desarrollada por el propietario legal de The Stichting Centrum Wiskunde & Informatica ( sucesor legal de Stichting Mathematisch Centrum).
  • Recursos de ALGOL 60: traductores, documentación, programas
  • ALGOL 60 incluido en la raqueta
Obtenido de "https://es.wikipedia.org/w/index.php?title=ALGOL_60&oldid=1247982160"