Jump to content

АЛГОЛ W

(Перенаправлено с Алгола-W )

АЛГОЛ W
Парадигмы Мультипарадигмальность : процедурная , императивная , структурированная.
Семья АЛГОЛ
Разработано Никлаус Вирт , Тони Хоар
Впервые появился 1966 год ; 58 лет назад ( 1966 )
Дисциплина набора текста Статический , сильный
Объем Лексический
Язык реализации ПЛ360
Платформа IBM Система/360
ТЫ ОС/360 , МТС
Под влиянием
АЛГОЛ 60
Под влиянием
Паскаль , Модуль-2

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

Работа Вирта была сочтена слишком незначительным достижением по сравнению с АЛГОЛом 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] определяет АЛГОЛ W в аффиксной грамматике , напоминающей форму Бэкуса-Наура (BNF). Эта формальная грамматика была предшественницей грамматики Ван Вейнгаардена . [1] [5]

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

  • Идентификаторы различаются по их определению в пределах текущей области . Например, ⟨procedure identifier⟩ это идентификатор, который был определен объявлением процедуры, ⟨label identifier⟩ — это идентификатор, который используется в качестве метки перехода .
  • Типы и переменных выражений обозначаются аффиксами . Например ⟨τ function identifier⟩ — это синтаксическая сущность для функции, которая возвращает значение типа τ, если идентификатор был объявлен как целочисленная функция в текущей области видимости, то он расширяется до ⟨integer function identifier⟩.
  • Ошибки типа — это грамматические ошибки. Например, ⟨integer expression⟩ / ⟨integer expression⟩ и ⟨real expression⟩ / ⟨real expression⟩ являются действительными, но отдельными синтаксическими объектами, которые представляют выражения, но ⟨real expression⟩ DIV ⟨integer expression⟩ (т. е. целочисленное деление, выполняемое для значения с плавающей запятой) является недопустимым синтаксическим объектом.

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

RECORD PERSON (
    STRING(20) NAME; 
    INTEGER AGE; 
    LOGICAL MALE; 
    REFERENCE(PERSON) FATHER, MOTHER, YOUNGESTOFFSPRING, ELDERSIBLING
);

REFERENCE(PERSON) PROCEDURE YOUNGESTUNCLE (REFERENCE(PERSON) R);
    BEGIN
        REFERENCE(PERSON) P, M;
        P := YOUNGESTOFFSPRING(FATHER(FATHER(R)));
        WHILE (P ¬= NULL) AND (¬ MALE(P)) OR (P = FATHER(R)) DO
            P := ELDERSIBLING(P);
        M := YOUNGESTOFFSPRING(MOTHER(MOTHER(R)));
        WHILE (M ¬= NULL) AND (¬ MALE(M)) DO
            M := ELDERSIBLING(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 году; этот отчет включает W. описание языка ALGOL
  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 , Университет прикладных наук, Германия.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9a92277c472e3cf5a8a61306ef3725fa__1706005440
URL1:https://arc.ask3.ru/arc/aa/9a/fa/9a92277c472e3cf5a8a61306ef3725fa.html
Заголовок, (Title) документа по адресу, URL1:
ALGOL W - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)