Сносторм - Snostorm

Сносторм (Snostorm3) - это версия СНОБОЛ4 язык с структурное программирование конструкции добавлены. Он компенсирует практически полное отсутствие структурных программных конструкций в SNOBOL4, предоставляя, среди прочего, операторы IF, ELSEIF, ELSE, LOOP, CASE и PROCEDURE. Первоначально он был разработан и реализован Фредом Дж. Шварцем как препроцессор для СПИТБОЛ работает под Терминальная система Мичигана (МТС) в университет Мичигана Вычислительный центр в 1970-е годы.[1]

Добавлены функции

К добавленным функциям относятся логические операторы, управляющие структуры, включая процедуры, блоки инициализации, расширенные комментарии и управление списком.[1]

Грамматика включает следующие дополнительные конструкции:[1]

Логические операторы
  • Логические операторы AND, OR и NOT.
Структуры управления
  • Операторы IF, ELSEIF, ELSE и ENDIF.
  • Операторы LOOP, LOOP WHILE, LOOP UNTIL, LOOP FOR, EXITLOOP, NEXTLOOP, ENDLOOP и ENDLOOP REPEAT.
  • Операторы DOCASE, CASE, ELSECASE и ENDCASE.
  • Операторы PROCEDURE (PROC), EXITPROCEDURE (EDITPROC) и ENDPROCEDURE (ENDPROC).
Инициализация
  • INITIAL и ENDINITIAL операторы.
Расширенные комментарии
  • Комментарии, начинающиеся со звездочки (*) в столбцах, кроме столбца 1.
  • Пустые строки рассматриваются как комментарии.
Управление листингом
  • Операторы EJECT, TITLE, SUBTITLE, SPACE, LIST ON, LIST OFF, LIST PUSHON, LIST PUSHOFF и LIST POP.

Кроме того, МТС Сносторм предоставила опции для красивая печать и для отладки с помощью компилятора Spitbol.

Синтаксис Snostorm в значительной степени нечувствителен к пробелам и символам новой строки, но не полностью из-за его зависимости от SNOBOL4 для выполнения.

Пример

Программа СНОБОЛ4, как указано в Язык программирования SNOBOL4 Грисволд, Поаж и Полонски[2] за ним следует та же программа, переписанная на Snostorm.[1]

  • Оригинальная программа СНОБОЛ4.
       ...ЧИТАТЬ   ВЫХОД         = ВХОД          :F(ОТОБРАЖАТЬ)       ТЕКСТ           = ВЫХОДСЛЕДУЮЩИЙ   ТЕКСТ СИМВОЛ      =                :F(ЧИТАТЬ)       СЧИТАТЬ<CH>      = СЧИТАТЬ<CH> + 1  :(СЛЕДУЮЩИЙ)       ОТОБРАЖАТЬ ВЫХОД =ПЕТЛЯ   БУКВЫ СИМВОЛ   =                :F(КОНЕЦ)       ВЫХОД         = NE(СЧИТАТЬ<CH>) CH ' ПРОИСХОДИТ ' СЧИТАТЬ<CH> "ВРЕМЯ"+                                      :(ПЕТЛЯ)КОНЕЦ
  • Та же программа, переписанная на Snostorm.
       ... ЦИКЛ В ТЕКСТЕ = ВХОД ВЫХОД = ТЕКСТ ЦИКЛ В ТЕКСТЕ CHAR = COUNT  = COUNT  + 1 ENDLOOP ENDLOOP OUTPUT = LOOP WHILE LETTERS CHAR = IF NE (COUNT ) OUTPUT = CH 'OCCURS' COUNT  'TIMES' ENDIF ENDLOOPEND

Использовать

Помимо использования на восьми-пятнадцати сайтах, на которых работала Терминальная система Мичигана,[1] компилятор Snostorm3 существовал в Университетский колледж Лондона (UCL) с 1982 по 1984 год и работал путем компиляции Snostorm3 в SNOBOL4, который затем мог быть выполнен с использованием интерпретатора SNOBOL4 или компилятора SPITBOL для создания исполняемого файла.[нужна цитата ]

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

  1. ^ а б c d е «СНОСТОРМ», МТС Том 9: СНОБОЛ4 в МТС, Вычислительный центр, Мичиганский университет, июнь 1979 г., страницы 99–120. Проверено 1 сентября 2014 года.
  2. ^ Грисволд, Ральф Э., Дж. Ф. Поаж и И. П. Полонски (1968). Язык программирования СНОБОЛ4. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, ISBN  0-13-815373-6.

внешняя ссылка