Сносторм - 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 для создания исполняемого файла.[нужна цитата ]
Рекомендации
- ^ а б c d е «СНОСТОРМ», МТС Том 9: СНОБОЛ4 в МТС, Вычислительный центр, Мичиганский университет, июнь 1979 г., страницы 99–120. Проверено 1 сентября 2014 года.
- ^ Грисволд, Ральф Э., Дж. Ф. Поаж и И. П. Полонски (1968). Язык программирования СНОБОЛ4. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, ISBN 0-13-815373-6.
внешняя ссылка
- Описание Snostorm Фредом Шварцем, 2010.
- "СНОСТОРМ возвращается", исходные файлы для современной повторной реализации.
- Исходный и объектный код MTS для препроцессора Snostorm, компонент 678 в MTS Distribution 6.0, апрель 1988 г., доступен по адресу Битсаверы и Цифровой архив Deep Blue от U-M.