stringtranslate.com

ALGOL W

ALGOL W es un lenguaje de programación . Se basa en una propuesta para 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 para registrar tipos de datos y paso de parámetros de llamada por resultado , introduciendo la declaración, reemplazándola con la declaración y, en general, reforzando el idioma.whileswitchcase

La entrada de Wirth se consideró un avance muy pequeño sobre ALGOL 60, y la entrada más compleja de Adriaan van Wijngaarden , que más tarde se convertiría en ALGOL 68, fue seleccionada en una reunión muy polémica. Wirth publicó posteriormente su versión como Una contribución al desarrollo de ALGOL . [1] Con una serie de pequeñas adiciones, esto finalmente se convirtió en ALGOL W.

Wirth supervisó una implementación de alta calidad para IBM System/360 en la Universidad de Stanford que tuvo una amplia distribución. [2] [3] La implementación fue escrita en PL360 , un lenguaje ensamblador similar a ALGOL diseñado por Wirth. La implementación incluye capacidades influyentes de depuración y creación de perfiles .

ALGOL W sirvió como base para el lenguaje Pascal , y la sintaxis de ALGOL W resultará inmediatamente familiar 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 las que más quejas hay en Pascal.

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 acortadas . Las palabras reservadas y los identificadores están separados por espacios. [2] En estos aspectos, la sintaxis de ALGOL W se parece a la de Pascal y 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 se define gramaticalmente: [4]

Ejemplo

Esto demuestra la función de tipo de registro de ALGOL W.

REGISTRAR PERSONA ( STRING ( 20 ) NOMBRE ; INTEGER EDAD ; LÓGICO MASCULINO ; REFERENCIA ( PERSONA ) PADRE , MADRE , HIJO MÁS JOVEN , HERMANO MAYOR ) ;                REFERENCIA ( PERSONA ) PROCEDIMIENTO TÍO JOVEN ( REFERENCIA ( PERSONA ) R ) ; COMENZAR REFERENCIA ( PERSONA ) P , M ; P := HIJOS MÁS JOVEN ( PADRE ( PADRE ( R ))) ; MIENTRAS ( P ¬ = NULL ) AND ( ¬ MASCULINO ( P )) O ( P = PADRE ( R )) DO P := HERMANO MAYOR ( P ) ; M := HIJOS JOVEN ( MADRE ( MADRE ( R ))) ; MIENTRAS ( M ¬ = NULL ) AND ( ¬ MALE ( M )) DO M := HERMANO MAYOR ( M ) ; SI P = NULO ENTONCES M ELSE SI M = NULO ENTONCES P ELSE SI EDAD ( P ) < EDAD ( M ) ENTONCES P ELSE M END                                                                    

Referencias

  1. ^ ab Wirth, Niklaus ; Hoare, CAR (junio de 1966). "Un aporte 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 Informática (Reporte). 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. ^ Sitios, 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.; Sitios, Richard L. (junio de 1972). Descripción del lenguaje ALGOL W (PDF) (Reporte).
  5. ^ van Wijngaarden, Adriaan (22 de octubre de 1965). Diseño ortogonal y descripción de un lenguaje formal: MR76 (PDF) (Reporte). Ámsterdam , Países Bajos: Centro de Matemáticas. Archivado desde el original (PDF) el 29 de octubre de 2019 . Consultado el 7 de octubre de 2020 , a través de Ernst-Abbe-Hochschule Jena , Universidad de Ciencias Aplicadas, Alemania.

Enlaces externos