stringtranslate.com

ALGOL W

ALGOL W es un lenguaje de programación . Se basa en una propuesta de ALGOL X de Niklaus Wirth y Tony Hoare como sucesor de ALGOL 60. ALGOL W es una actualización relativamente simple del ALGOL 60 original, que agrega cadenas , cadenas de bits, números complejos y referencias a tipos de datos de registros y paso de parámetros por llamada por resultado , introducción de la declaración, reemplazo por la declaración y, en general, ajuste el lenguaje.whileswitchcase

La propuesta de Wirth se consideró demasiado pequeña como para suponer un avance respecto de ALGOL 60, y en una reunión muy polémica se seleccionó la propuesta más compleja de Adriaan van Wijngaarden , que más tarde se convertiría en ALGOL 68. Wirth publicó más tarde su versión como Una contribución al desarrollo de ALGOL . [1] Con una serie de pequeñas adiciones, esta versión acabó convirtiéndose en ALGOL W.

Wirth supervisó una implementación de alta calidad para IBM System/360 en la Universidad de Stanford que se distribuyó ampliamente. [2] [3] La implementación se escribió en PL360 , un lenguaje ensamblador similar a ALGOL diseñado por Wirth. La implementación incluye importantes capacidades de depuración y creación de perfiles .

ALGOL W sirvió como base para el lenguaje Pascal , y la sintaxis de ALGOL W resultará familiar de inmediato para cualquier persona con experiencia en Pascal. Las diferencias clave son las mejoras en el manejo de registros en Pascal y, curiosamente, la pérdida de la capacidad de ALGOL W para definir la longitud de una matriz en tiempo de ejecución, que es una de las características de Pascal que más quejas suscita.

Sintaxis y semántica

La sintaxis de ALGOL W se basa en un subconjunto del conjunto de codificación de caracteres EBCDIC . En ALGOL 60 , las palabras reservadas son elementos léxicos distintos, pero en ALGOL W son solo secuencias de caracteres y no necesitan ser recortadas . Las palabras reservadas y los identificadores están separados por espacios. [2] De esta manera, la sintaxis de ALGOL W se parece a la de Pascal y a los lenguajes posteriores.

La descripción del lenguaje ALGOL W [4] define ALGOL W en una gramática de afijos que se asemeja a la forma Backus–Naur (BNF). Esta gramática formal fue precursora de la gramática de Van Wijngaarden . [1] [5]

Gran parte de la semántica de ALGOL W está definida gramaticalmente: [4]

Ejemplo

Esto demuestra la facilidad de tipo de registro de ALGOL W.

REGISTRAR PERSONA ( CADENA ( 20 ) NOMBRE ; ENTERO EDAD ; LÓGICO MASCULINO ; REFERENCIA ( PERSONA ) PADRE , MADRE , HIJO MENOR , HERMANO MAYOR ) ;                REFERENCIA ( PERSONA ) PROCEDIMIENTO TÍO MENOR ( REFERENCIA ( PERSONA ) R ) ; COMIENZO REFERENCIA ( PERSONA ) P , M ; P := HIJOMENOR ( PADRE ( PADRE ( R ))) ; MIENTRAS ( = NULO ) Y ( ¬ HOMBRE ( P )) O ( P = PADRE ( R )) HACER P : = HERMANO MAYOR ( P ) ; M := HIJOMENOR ( MADRE ( MADRE ( R ))) ; MIENTRAS ( = NULO ) Y ( ¬ HOMBRE ( M )) HACER M := HERMANO MAYOR ( M ) ; SI P = NULO ENTONCES M DE LO CONTRARIO SI M = NULO ENTONCES P DE LO CONTRARIO SI EDAD ( P ) < EDAD ( M ) ENTONCES P DE LO CONTRARIO M FIN                                                                    

Referencias

  1. ^ ab Wirth, Niklaus ; Hoare, CAR (junio de 1966). "Una contribución al desarrollo de ALGOL". Comunicaciones de la ACM . 9 (6): 413–432. doi : 10.1145/365696.365702 . S2CID  11901135 . Consultado el 7 de octubre de 2020 – a través de Association for Computing Machinery .
  2. ^ ab Bauer, Henry R.; Becker, Sheldon I.; Graham, Susan L.; Forsythe, George E.; Satterthwaite, Edwin H. (marzo de 1968). Número de informe técnico: CS-TR-68-89. Departamento de Ciencias de la Computación (informe). Universidad de Stanford.(Varios documentos para la implementación de ALGOL W en Stanford en 1972; este informe incluye la descripción del lenguaje ALGOL W.
  3. ^ Sites, Richard. "Manual de referencia de ALGOL W" (PDF) . i.stanford.edu . Universidad de Stanford . Consultado el 24 de julio de 2022 .
  4. ^ ab Bauer, Henry R.; Becker, Sheldon I.; Graham, Susan L.; Satterthwaite, Edwin H.; Sites, Richard L. (junio de 1972). Descripción del lenguaje ALGOL W (PDF) (Informe).
  5. ^ van Wijngaarden, Adriaan (22 de octubre de 1965). Diseño ortogonal y descripción de un lenguaje formal: MR76 (PDF) (Informe). Ámsterdam , Países Bajos: Mathematical Centre. Archivado desde el original (PDF) el 29 de octubre de 2019. Consultado el 7 de octubre de 2020 – vía Ernst-Abbe-Hochschule Jena , Universidad de Ciencias Aplicadas, Alemania.

Enlaces externos