stringtranslate.com

АЛГОЛ W

АЛГОЛ Wязык программирования . Он основан на предложении Никлауса Вирта и Тони Хоара об Алголе X как преемнике Алгола 60 . АЛГОЛ W — это относительно простая модернизация исходного АЛГОЛа 60, в которую добавлена ​​строка , битовая строка, комплексное число и ссылка на типы данных записи , а также передача параметров по результату , введение оператора, замена оператором и в целом ужесточение язык. whileswitchcase

Работа Вирта была сочтена слишком незначительным достижением по сравнению с АЛГОЛом 60, а более сложная версия Адриана ван Вейнгаардена , которая позже стала АЛГОЛом 68, была выбрана на весьма спорном совещании. Позже Вирт опубликовал свою версию как «Вклад в развитие АЛГОЛА» . [1] С рядом небольших дополнений это в конечном итоге стало ALGOL W.

Вирт руководил высококачественной реализацией IBM System/360 в Стэнфордском университете , которая получила широкое распространение. [2] [3] Реализация была написана на PL360 , языке ассемблера , похожем на АЛГОЛ, разработанном Виртом. Реализация включает в себя важные возможности отладки и профилирования .

АЛГОЛ W послужил основой для языка Паскаль , и синтаксис АЛГОЛ W будет сразу знаком каждому, кто имеет опыт работы с Паскалем. Ключевыми отличиями являются улучшения в обработке записей в Паскале и, как ни странно, потеря способности ALGOL W определять длину массива во время выполнения, что является одной из функций Паскаля, на которую больше всего жалуются.

Синтаксис и семантика

Синтаксис ALGOL W построен на подмножестве набора кодировок символов EBCDIC . В АЛГОЛе 60 зарезервированные слова представляют собой отдельные лексические элементы, но в АЛГОЛе W они представляют собой всего лишь последовательности символов, и их не нужно сокращать . Зарезервированные слова и идентификаторы разделяются пробелами. [2] В этом отношении синтаксис ALGOL W напоминает синтаксис Паскаля и более поздних языков.

Описание языка ALGOL W [4] определяет ALGOL W в аффиксной грамматике , напоминающей форму Бэкуса-Наура (BNF). Эта формальная грамматика была предшественницей грамматики Ван Вейнгаардена . [1] [5]

Большая часть семантики ALGOL W определяется грамматически: [4]

Пример

Это демонстрирует возможности ALGOL W по типу записи .

ЗАПИСЬ ЧЕЛОВЕКА ( СТРОКА ( 20 ) ИМЯ ; ЦЕЛЫЙ ВОЗРАСТ ; ЛОГИЧЕСКИЙ МУЖЧИНА ; ССЫЛКА ( ЧЕЛОВЕК ) ОТЕЦ , МАТЬ , МЛАДШИЙ ПОТОМ , СТАРШИЙ БРАТ ) ;                ССЫЛКА ( ЧЕЛОВЕК ) ПРОЦЕДУРА YOUNGESTUNCLE ( ССЫЛКА ( ЧЕЛОВЕК ) R ) ; НАЧАТЬ ССЫЛКУ ( ЧЕЛОВЕК ) P , M ; P := МОЛОДЫЕ ПОТОМКИ ( ОТЕЦ ( ОТЕЦ ( R ))) ; WHILE ( P ¬ = NULL ) AND ( ¬ MALE ( P )) OR ( P = ОТЕЦ ( R )) DO P := СТАРШИЙ БРАТ ( P ) ; M := МОЛОДЫЕ ПОТОМКИ ( МАТЬ ( МАТЬ ( R ))) ; WHILE ( M ¬ = NULL ) AND ( ¬ MALE ( M )) DO M := СТАРШИЙ БРАТ ( M ) ; IF P = NULL THEN M ELSE IF M = NULL THEN P ELSE IF AGE ( P ) < AGE ( M ) THEN P ELSE M END                                                                    

Рекомендации

  1. ^ аб Вирт, Никлаус ; Хоар, ЦАР (июнь 1966 г.). «Вклад в развитие АЛГОЛА». Коммуникации АКМ . 9 (6): 413–432. дои : 10.1145/365696.365702 . S2CID  11901135 . Проверено 7 октября 2020 г. - через Ассоциацию вычислительной техники .
  2. ^ Аб Бауэр, Генри Р.; Беккер, Шелдон И.; Грэм, Сьюзен Л.; Форсайт, Джордж Э.; Саттертуэйт, Эдвин Х. (март 1968 г.). Номер технического отчета: CS-TR-68-89. Кафедра компьютерных наук (Отчет). Стэндфордский Университет.(Различные документы по реализации ALGOL W в Стэнфорде в 1972 году; этот отчет включает описание языка ALGOL W.
  3. ^ Сайты, Ричард. «Справочное руководство по ALGOL W» (PDF) . i.stanford.edu . Стэндфордский Университет . Проверено 24 июля 2022 г.
  4. ^ Аб Бауэр, Генри Р.; Беккер, Шелдон И.; Грэм, Сьюзен Л.; Саттертуэйт, Эдвин Х.; Сайты, Ричард Л. (июнь 1972 г.). Описание языка ALGOL W (PDF) (Отчет).
  5. ^ ван Вейнгаарден, Адриан (22 октября 1965 г.). Ортогональная конструкция и описание формального языка: MR76 (PDF) (Отчет). Амстердам , Нидерланды: Математический центр. Архивировано из оригинала (PDF) 29 октября 2019 года . Проверено 7 октября 2020 г. - через Ernst-Abbe-Hochschule Jena , Университет прикладных наук, Германия.

Внешние ссылки