ОРВИЛ и ВИЛБУР - ORVYL and WYLBUR

ОРВИЛ и ВИЛБУР
РазработчикСтэндфордский Университет
Написано в360/370 язык ассемблера
Рабочее состояниеСнято с производства
Исходная модельИзначально Открытый исходный код; более поздние проприетарные версии имели лицензионный исходный код
изначальный выпуск1967, 1968
Доступно ванглийский
ПлатформыIBM S / 360, S / 370 и последующие
ЛицензияПервоначально общественное достояние; у более поздних проприетарных версий были отдельные лицензии
Официальный веб-сайтсеть.stanford.edu/ отдел/это/поддерживать/ wylorv/
История операционных систем мэйнфреймов IBM

ОРВИЛ это совместное времяпровождение монитор разработан Стэндфордский Университет за IBM System / 360 и Система / 370 компьютеры в 1967–68 гг.[1] ОРВИЛ был одним из первых совместное времяпровождение системы, которые будут доступны для компьютеров IBM. Wylbur это Текстовый редактор и текстовый редактор Программа предназначена для работы либо без ORVYL, либо совместно с ORVYL.[2]

Обзор

Имена ORVYL и WYLBUR часто используются как синонимы, но:

  • ORVYL - это монитор с разделением времени, который поддерживает файловую систему, язык команд, выполнение программ и отладку, а также предоставляет услуги супервизора.[1]
  • WYLBUR - текстовый редактор, текстовый процессор,[а] отправка и извлечение заданий, а также программа электронной почты, разработанная для совместной работы с ORVYL или IBM OS / 360, SVS, и MVS операционные системы.[2] и
  • MILTEN - это программное обеспечение для управления терминалами, используемое ORVYL и WYLBUR для старт / стоп терминалы.[1]

WYLBUR не является полностью автономной операционной системой в форме Дартмутская система разделения времени (DTSS) или Unix. Вместо этого он работает поверх пакетной операционной системы IBM (OS / 360, SVS, MVS). Он имеет форму редактора с системой удаленного ввода заданий и, таким образом, имеет такое же отношение к операционным системам IBM, как и Emacs делает для Unix. По этим причинам WYLBUR часто воспринимается как текстовый редактор, а не как система разделения времени. Однако, в то время как Unix не нуждается в Emacs для предоставления услуг редактирования текста, операционные системы IBM изначально нуждались в WYLBUR. Более поздние инновации, такие как IBM Вариант разделения времени (TSO) сделал WYLBUR менее актуальным для пользователей IBM и постепенно заменил его.

В этой статье для команд и ключевых слов будет использоваться полное написание прописных букв. Все ссылки на символы и строку предполагают кодовую страницу EBCDIC.

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

ORVYL и WYLBUR использовались в Стэнфордский центр линейных ускорителей (SLAC), то Европейская организация ядерных исследований (ЦЕРН), то Национальные институты здравоохранения США (NIH), и многие другие сайты. Удалено из большинства сайтов в конце 1990-х годов из-за опасений по поводу Y2K выпусков, они оставались в использовании в NIH до декабря 2009 года.[3] ORVYL и WYLBUR по-прежнему доступны в Стэнфорде с открытым исходным кодом.[4] Существуют также проприетарные версии, такие как SuperWYlbur.

ORVYL и WYLBUR вызвали большое восхищение, о чем свидетельствует этот отрывок из статьи 2004 года, озаглавленной «Вычисления в ЦЕРН: эра мэйнфреймов»:

[В 1976 году IBM S / 370-168] также принесла с собой операционную систему MVS (Multiple Virtual Storage) с педантичным языком управления заданиями, и это дало возможность ЦЕРНу представить WYLBUR, любимую, продуманно разработанную и удобная система разделения времени, разработанная SLAC, вместе с красиво написанным от руки и иллюстрированным руководством Джона Эрмана. WYLBUR был шедевром дизайна, совершая чудеса с небольшой мощностью (в то время), распределяемой между множеством одновременных пользователей. Он завоевал друзей своим любезным характером и положил начало отказу от оборудования для перфокарт, когда в лаборатории появились компьютерные терминалы.[5]

Преимущества и недостатки

ORVYL и WYLBUR впервые стали доступны в 1967–68, раньше TSS / 360, TSO, или любое другое официальное решение для разделения времени от IBM. Это было примерно в то же время, когда сторонние системы разделения времени, такие как МТС стали доступны, и усилия по разработке незаметных для CP-67 в собственном Кембриджском научном центре IBM. У WYLBUR было дополнительное преимущество, заключающееся в том, что его можно было использовать вместе с основной операционной системой IBM, OS / 360.

WYLBUR - это система с одним адресным пространством, в отличие от TSO. Это сохраняло память в те дни, когда память была драгоценна. Таким образом, даже когда TSO был доступен, организации, стремящиеся минимизировать использование памяти, часто оставляли некоторых или даже большинство своих пользователей на WYLBUR, вместо того, чтобы позволять им использовать интерактивную среду TSO.

WYLBUR предоставляет сжатые Многораздельные наборы данных (PDS, также известные как библиотеки) для экономии места на диске. В MVS исходный код обычно хранится в виде последовательности изображений карточек (80 символьных строк). Если строка содержала только один или несколько символов, 80 символов все равно использовались для хранения этой строки. Даже когда данные, например, исходный код, хранятся как заблокированные переменные (VB), пространство может быть потрачено впустую на строки встроенных пробелов. WYLBUR реализует потоковое хранение текста в PDS (и последовательных наборах данных), так что односимвольная строка может занимать только 16 символов (длина строки, смещение, длина фрагмента, символ), а не 80 для хранения. WYLBUR или внешняя программа, запускаемая через JCL использовался для преобразования файлов в формат WYLBUR EDIT и обратно.

Хотя TSO позволяет пользователю делать больше, чем это делала заблокированная система WYLBUR, можно написать сценарии WYLBUR Exec, которые выполняют пакетные задания для выполнения функций, которые обычно требовали бы учетной записи TSO, заполняя скелет пакетного задания параметрами, отправка пакетного задания, получение вывода и отображение его на экране.

WYLBUR имеет некоторые преимущества в плане безопасности перед TSO и некоторые недостатки. Преимущества включают:

  • Возможность писать правила для ограничения доступа пользователей к наборам данных, отличным от принадлежащих им и хранящихся под их префиксом. Это аналог домашнего каталога пользователя в UNIX и выглядит примерно как WYL.AV99.HCO, где AV99 примерно аналогичен «группе», а HCO - «пользователю» внутри группы.
  • Более справедливое использование ресурсов. WYLBUR не реализует такие команды, как распределение TSO, которые могут намеренно или непреднамеренно предотвращать доступ других к файлам данных в течение длительного периода времени или использовать огромные объемы памяти или процессорного времени. Таким образом, он сводит к минимуму влияние одного пользователя на всех остальных пользователей.
  • Команды для установки определенных параметров статуса или «слежения» за командами, выполняемыми другими пользователями, были доступны только администраторам и не могли выполняться обычными пользователями.

К недостаткам, связанным с безопасностью, относились:

  • WYLBUR - это система с одним адресным пространством. Это означает, что если пользователь может выяснить, как получить доступ к необработанным байтам в адресном пространстве, он потенциально может получить доступ к информации, которой он не владеет. Например, когда-то существовала программа, написанная двумя студентами колледжа на языке сценариев WYLBUR Exec, которая могла выкапывать пароль последнего вошедшего в систему пользователя из памяти WYLBUR.
  • Поскольку процесс WYLBUR выполняется под системной учетной записью, назначенной WYLBUR, он полностью зависит от обеспечения защиты доступа к набору данных в соответствии с правилами, установленными в WYLBUR. Применение правил доступа может быть полностью отключено пользователем с правами администратора в целях обслуживания системы, который может не забыть снова включить их.
  • WYLBUR реализует дисковые квоты с интересным поворотом: любой пользователь системы может отдать всю или часть своей квоты другим пользователям. Эту функциональность можно сочетать с типичными связанными с курсом учетными записями студентов, которые удаляются в конце каждого семестра, и опытным компьютером студенческим персоналом, у которого были бессрочные учетные записи с низкими дисковыми квотами, что не всегда ожидается сотрудниками университета.
  • В системах под управлением ACF2 Пакет безопасности, пользователь с учетными записями в TSO и WYLBUR, привязанными к одному и тому же имени учетной записи, может сбросить содержимое записи безопасности своей учетной записи WYLBUR в интерактивном режиме из TSO. Это можно использовать для превращения обычного пользователя WYLBUR в пользователя WYLBUR с правами администратора, увеличения дисковой квоты и т. Д.
  • По крайней мере, до 1960-х годов правила безопасности WYLBUR не применялись для пакетных заданий, выполняемых в одной системе. Таким образом, такие утилиты, как IEHLIST и IEBGENER, можно было использовать для обнаружения, чтения и изменения файлов, принадлежащих другим пользователям WYLBUR, если только вы не защитили эти файлы паролем, что было неудобно для работы.

Управление данными

У Wylbur был специальный формат редактирования для наборов данных Wylbur, которые сжимаются и имеют номер строки и флаг редакции для каждой строки. Кроме того, Wylbur поддерживает стандартные наборы данных FB и VB. Пользователь Wylbur обычно указывает объем по умолчанию, которым может быть специальное слово CATLG. запрос поиска в каталоге существующего набора данных и запрос каталогизации нового набора данных. Wylbur имеет возможность преобразовывать номера строк между редактируемыми наборами данных и наборами данных IBM либо как масштабированные целые числа, либо с явной десятичной точкой.

Редактирование

Wylbur предоставляет линейный редактор, который работает с временными наборами данных, подобно буферам в других редакторах. В любой момент времени один из временных наборов данных используется по умолчанию. Wylbur поддерживает текущий указатель строки для каждого временного набора данных. Пользователь может указать явный набор рабочих данных в команде; если он его опускает, то в качестве рабочего набора данных используется набор временных данных по умолчанию.

Единицей работы является набор строк (ассоциативный диапазон), а отдельные строки обозначаются номером в диапазоне от 0,0 до 99999,999; начальные нули в целой части и конечные нули в дробной части могут быть опущены. Пользователь может указать номер строки любым из следующих способов

  1. Абсолютный номер строки: ddddd.ddd
  2. ПЕРВАЯ: первая строка в рабочем наборе данных
  3. CURRENT: текущая строка для рабочего набора данных
  4. LAST: последняя строка в рабочем наборе данных
  5. КОНЕЦ: цель для копий, следующая за последней строкой в ​​рабочем наборе данных
  6. относительный: строка + порядковый номер или строка-порядковый номер.
  7. макропеременная, содержащая строку

Библиотеки Wylbur имеют нестандартный формат, однако он позволяет пользователю экспортировать в собственные файлы ОС с целыми порядковыми номерами и импортировать собственные файлы ОС с целочисленной последовательностью и масштабировать номер строки в 1000 раз.

Диапазон может быть указан как комбинация

  1. Явный диапазон, например, 5.3-2/7.4+3
  2. Шаблон, например, 'ИКС' ЦИФРЫ*3
  3. Шаблон с диапазоном столбцов, например, 'БАЛ' 10/15
  4. Порядковый номер, например, 3RD 'БАЛ' 10/15
  5. Порядковый номер относительно совпадения, например, 3RD ПОСЛЕ 'БАЛ' 10/15
  6. Последовательность строк после совпадения, например, КАЖДЫЙ 3RD ПОСЛЕ 'БАЛ' 10/15
  7. Логическая операция, например, 'СТРАНИЦА' ПЕРЕСЕЧЕНИЕ ДОПОЛНЕНИЕ 'НОМЕР'
  8. Спецификация в скобках с префиксом SET, например, 'СТРАНИЦА' ПЕРЕСЕЧЕНИЕ НАБОР (ДОПОЛНЕНИЕ 'НОМЕР')

Шаблон похож на регулярное выражение, но синтаксис ближе к синтаксису СНОБОЛ чем к Unix или же Perl, здесь нет возврата, и только NIH Wylbur имеет захват подшаблонов. Выкройка может быть:

  • 'нить'
  • "нить"
  • узор узор
  • (шаблон)
  • патерн * цифры
  • шаблон * цифры / цифры
  • ВЫШЕ "строка"
  • узор И узор
  • ЛЮБОЙ
  • BACKSPACE
  • НИЖЕ 'строка'
  • ПУСТОЙ
  • ПРОБЕЛЫ
  • BOL
  • BOS
  • ПУЛЯ
  • БРОСАТЬСЯ
  • ЦИФРА
  • ЦИФРЫ
  • ЕЦБ
    Равно, запятая, пробел
  • ECBS
    Равно, запятые, пробелы
  • ПУСТОЙ
  • EOL
  • EOS
  • HEX [#] шестнадцатеричные цифры
  • LBRACKET
  • ПИСЬМО
  • НИЖЕ
  • НЕ шаблон
  • узор ИЛИ узор
  • ПУНКТ
  • ПУНКТУАЦИЯ
  • RBRACKET
  • РАЗДЕЛ
  • КОСМОС
  • ПРОСТРАНСТВА
  • НЕКОТОРЫЕ 'строка'
  • шаблон THRU шаблон
  • НЕПЕЧАТАТЬ
  • UPLOW 'строка'
  • ВЕРХНИЙ

Примеры команд

 ИЗМЕНИТЬ 73/80 НА X10 + 10 В КАЖДОЙ СТРОКЕ 'ABC' 1/3 дюйма 1,5-2 / 3,7 + 2 КОПИРОВАТЬ 'BAL' 10/15 ЧТОБЫ ИЗМЕНИТЬ 73/80 НА '' В КАЖДОЙ СТРОКЕ 2 НАЧАЛА 2 'BAL '10 / 15CHANGE' ('DIGITS * 3') 'НА ПОДСТРОКУ 2/4

Спецификация приращения base + означает, что текст замены в первой строке является базовым и увеличивается в последующих строках, так что X10 + 10 заменяет совпадающий текст в первой строке на X10, во второй строке с X20 и в третьей строке с X30. Спецификация SUBSTRING 2/4 означает столбцы 2–4 согласованной строки; обратите внимание, что это менее гибко, чем захват.

Расширенные версии

Различные организации разработали улучшенные версии Wylbur. К ним относятся

SuperWylbur ™

SuperWylbur имеет несколько улучшений по сравнению с оригинальным Wylbur. Самыми важными являются

  1. Поддержка терминалов 3270, 3767 и NTO через VTAM; как и другие собственные версии Wylbur, SuperWylbur не использует MILTEN для терминалов VTAM.
  2. Расширенные возможности макросов.
  3. Поддержка написанных пользователем полноэкранных панелей

Макросъемка SuperWylbur

Макропроцессор добавляет в Wylbur команды, константы, функции и выражения. Даже если синтаксис команды не включает параметры, определенные как выражения, пользователь может использовать формы %(выражение) и %%(выражение) заставить оценку. Если выражение представляет собой функцию без аргументов или переменную, скобки можно опустить, например, %.ВРЕМЯ вместо %(.ВРЕМЯ). Удвоенный% запрашивает котировку стоимости.

Константы SuperWylbur

SuperWylbur имеет два типа констант:

  • Числовые константы
    • [знак]цифры[E[знак]показатель степени]
    • #шестнадцатеричные цифры
  • строковые константы
    • 'символы'
    • "символы"

Операторы SuperWylbur

Операторы SuperWylbur, имена которых содержат только специальные символы, не должны разделяться пробелами. Операторы, имена которых содержат точку и буквы, должны быть разделены пробелами. SuperWylbur имеет следующие типы операторов:

Арифметические операторы SuperWylbur
  • + Плюс
  • - Минус
  • * Раз
  • / Разделять
  • // Целочисленное деление
  • .DIV синоним для //
  • .MOD Модуль
  • ** Экспоненциальный
Операторы отношения SuperWylbur
  • < (.LT) Меньше, чем
  • <= (.LE) Меньше или равно
  • = (.EQ) Равно
  • >= (.GE) Больше или равно
  • > (GT) Большее
  • ¬< (.NLT) Не меньше чем
  • ¬<= (.NLE) Не меньше или равно
  • ¬= (.NEQ) Не равный
  • ¬>= (.NGE) Не больше или равно
  • ¬> (.NGT) Не более
Логические операторы SuperWylbur
  • & () И
  • | (.ИЛИ ЖЕ) Или же
  • ¬ (.НЕТ) Нет

Макрофункции SuperWylbur

Имя макрос-функции начинается с точки. Если есть аргументы, их от имени отделяет двоеточие. Точка с запятой разделяет последовательные аргументы. SuperWylbur предоставляет следующие типы макросов:

арифметические функции

  • .ABS
  • .ACOS
  • .КАК В
  • .ЗАГАР
  • .ПОТОЛОК
  • .COS
  • .COSH
  • .COTAN
  • .DEG
  • .E
  • .ERF
  • .ERFC
  • .EXP
  • .ЭТАЖ
  • .ДРОБНАЯ ЧАСТЬ
  • .ГАММА
  • .LGAMMA
  • .БРЕВНО
  • .LOG10
  • .ЧИСЛО ПИ
  • .RAD
  • .КРУГЛЫЙ
  • .SIN
  • .SINH
  • .SQRT
  • .TAN
  • .TANH
  • .TRUNCATE

бухгалтерские функции:

  • .ОБВИНЯТЬ
  • .CONNTIME
  • .CPUTIME
  • .MEMACT
  • .MEMCPU
  • .ОБЪЕМ ПАМЯТИ
  • .MEMTIME
  • .PAGES
  • .PAGESECS
  • .PAGING
  • .TERMIO

преобразование даты и времени: s параметры по умолчанию на текущую дату или время

  • .ДАТА
  • .DATE4
  • .ДНЕЙ
  • .ДНЕЙ
  • .FULLDATE
  • .JDATE
  • .JDATE4
  • .ВРЕМЯ
  • .TIME100
  • .TIME24
  • .TIMEMIC

экологические запросы; большинство из этих возвращаемых значений из НАБОР команды:

  • .УЧЕТНАЯ ЗАПИСЬ
  • .ТРЕВОГА
  • .AUTOLOG
  • .НАЗАД
  • .ПАРТИЯ
  • .BIN
  • .ДЕЛО
  • .ПОДТВЕРЖДАТЬ
  • .CONT
  • .ЦПУ
  • .DSFORMAT
  • .РЕДАКТИРОВАТЬ
  • .EXTDS
  • .FSASIZE
  • .ДЛИНА
  • .LNDP
  • .LOGONID
  • .MAILDSN
  • .MAILVOL
  • .УВЕДОМЛЯТЬ
  • .PORT
  • .ПРЕФИКС
  • .PRIV
  • .ПРОЕКТ
  • .PROMEM
  • .PUBPREFIX
  • .PUBVOL
  • .RECDSN
  • .RECVOL
  • .КОМНАТА
  • .RSASIZE
  • .SCRSIZE
  • .SSASIZE
  • .SWCOUNT
  • .SWSYSPRE
  • .SYSMDSN
  • .SYSMVOL
  • .SYSNAME
  • .T3270
  • .TABS
  • .РАЗГОВАРИВАТЬ
  • .ТЕРМИНАЛ
  • .TERSE
  • .TIMEOUT
  • .ПОЛЬЗОВАТЕЛЬ
  • .ВЕРСИЯ
  • .ОБЪЕМ
  • .ШИРИНА

полноэкранные функции:

  • .CURSORPOSN
  • .CURSORVAR
  • .РЕДАКТИРОВАТЬ
  • .EDITLINE
  • .ENTRYKEY
  • .SCRNUPDT
  • .VARUPDATE

Функции JES:

  • .FETCHLIN
  • .ПРОШЛАЯ РАБОТА

функции макроса:

  • .ARG
  • .CARG
  • .CMDCOUNT
  • .CMDLIMIT
  • .CMDMAX
  • .DSEXIST
  • .DSNAME
  • .ИСХОДНЫЙ
  • .ПРОШЛАЯ РАБОТА
  • .LATTN
  • .LERR
  • .MRETURN
  • .РОДНЫЕ
  • .XLATTN
  • .XLERR

строковые функции:

  • .БАЙТ
  • .CHAR
  • .COLUMNS
  • .БРОСАТЬСЯ
  • .ПРОДЛЕВАТЬ
  • .FINDEX
  • .HEX
  • .HEXSTR
  • .ИНДЕКС
  • .НИЖЕ
  • .PAD
  • .ЦИТИРОВАТЬ
  • .ОБЕСПЕЧИТЬ РЕГРЕСС
  • .РИМСКИЙ
  • .STRHEX
  • .НИТЬ
  • .STRLEN
  • .SUBSTRING
  • .ПЕРЕВЕДИТЕ
  • .ПОДРЕЗАТЬ
  • .ВЕРХ
  • .ПРОВЕРЯТЬ

рабочие файловые функции; s аргументы по умолчанию для текущего набора рабочих данных по умолчанию

  • .ТЕКУЩИЙ
  • .КОНЕЦ
  • .ПЕРВЫЙ
  • .ПОСЛЕДНИЙ
  • .ДЛИНА
  • .ЛИНИЯ
  • .LINENO
  • .MACRO
  • .MAXTEMPS
  • .NUMTEMPS
  • .РАЗМЕР
  • .ВРЕМЕННЫЙ
  • .TEMPSLEFT
  • .TEMPUPD
  • .ТЕКСТ

Полный список функций макроса:

  • .ABS:п
    Абсолютная величина
  • .УЧЕТНАЯ ЗАПИСЬ
    Номер учетной записи из идентификатора входа
  • .ACOS:Икс
    Арккосинус Икс
  • .ТРЕВОГА
    1, если звуковой сигнал при следующей записи терминала
  • .ARG
    Аргументы переданы макросу
  • .КАК В:Икс
    Дуговый синус Икс
  • .ЗАГАР:Икс
    Арктангенс Икс
  • .AUTOLOG
    Значение УСТАНОВИТЬ АВТОЛОГ; используется для восстановления с предыдущего сеанса
  • .НАЗАД
    НАБОР вариант: НАЗАД или же НЕТ
  • .ПАРТИЯ:s
    Значение УСТАНОВИТЬ ПАРТИЮ вариант s
  • .BIN
    Стоимость от УСТАНОВИТЬ КОМНАТУ
  • .БАЙТ:(s[;я])
    Преобразовать байт я из s к целому числу
  • .CARG
    Аргументы, передаваемые пользовательской команде, определенной с помощью УСТАНОВИТЬ КОМАНДУ
  • .ДЕЛО
    Стоимость от УСТАНОВИТЬ СЛУЧАЙ: ВЕРХНИЙ или же UPLOW
  • .ПОТОЛОК:п
    Усечь
  • .CHAR:я
    Конвертировать я в один символ EBCDIC
  • .ОБВИНЯТЬ
    Стоимость текущей сессии в долларах и центах
  • .CMCOUNT
    Макрокоманды без терминального ввода-вывода
  • .CMDCOUNT
    Макрокоманды без терминального ввода-вывода
  • .CMDLIMIT
    Стоимость от УСТАНОВИТЬ CMDLIMIT; Максимальный макрос без ввода / вывода терминала
  • .CMDMAX
    Максимально допустимый в УСТАНОВИТЬ CMDLIMIT
  • .CMLIMIT
    Стоимость от УСТАНОВИТЬ CMDLIMIT; Максимальный макрос без ввода / вывода терминала
  • .COLUMNS:s;i1[;i2]
    Подстрока s из столбца i1 в колонку i2
  • .ПОДТВЕРЖДАТЬ
    1 если УСТАНОВИТЬ ПОДТВЕРЖДЕНИЕ
  • .CONNTIME
    Соединить тинме за секунды до 2 знаков после запятой
  • .CONT
    Продолжение символа
  • .COS:Икс
    Косинус Икс
  • .COSH:Икс
    Гиперболический косинус Икс
  • .КОТАН:Икс
    Котангенс Икс
  • .ЦПУ
    Идентификатор процессора из SMF
  • .CPUTIME
    Процессорное время в секундах с точностью до 2 знаков после запятой
  • .ТЕКУЩИЙ[:s]
    Текущий номер строки рабочего набора данных s; -1, если он не существует, -2, если он пуст
  • .CURPOSN
    Положение курсора при последнем прерывании в форме row + col / 1000; -1, если не 3270
  • .CURSORVAR
    Имя переменной для поля, содержащего курсор при последнем прерывании
  • .БРОСАТЬСЯ
    Символ тире, используемый ГИФЕНАТ ('62'X)
  • .ДАТА[:s]
    Преобразование юлианской даты s (гг.ддд или гггг.ддд) в мм / дд / гг
  • .DATE4[:s]
    Преобразование юлианской даты s (гг.ддд или гггг.ддд) в мм / дд / гггг
  • .ДЕНЬ[:s]
    День недели s (мм / дд / гг или мм / дд / гггг) приходится на
  • .ДНЕЙ[:s]
    Дней с 01.01.1900 по
    s
  • .DEG:Икс
    Конвертировать Икс радианы в градусы
  • .DSEXIST:s1[;s2)
    1, если набор данных s1 существует на томе s2 (может быть CATLG)
  • .DSFORMAT
    Стоимость от УСТАНОВИТЬ DSFORMAT: ТЕРСА или же ПОДРОБНЫЙ
  • .DSNAME:s
    Конвертирует s на полное имя набора данных
  • .E
    е
  • .РЕДАКТИРОВАТЬ
    1 в полноэкранной среде редактирования
  • .EDITLINE
    Номер строки в верхней части рамки редактирования, -1, если не 3270, -2, если нет полноэкранного редактирования, -3 пусто
  • .КОНЕЦ[:s]
    Следующее целое число после номера последней строки в рабочем наборе данных s
  • .ENTRYKEY
    Клавиша, вызывающая последнее прерывание: ЧИСТО, КУРСЕЛЬ, ВОЙТИ, PA1-PA3, PFK1-PRK24
  • .ERF:Икс
    Функция ошибки
  • .ERFC:Икс
    Функция ошибки
  • .EXP:Икс
    е^Икс
  • .EXTDS
    1, если sessiona поддерживает 3270 расширенный поток данных
  • .ПРОДЛЕВАТЬ:(s1;я[;s2])
    Добавьте столько копий s2 (по умолчанию "") при необходимости s1 получить длину я
  • .FETCHLIN
    Строки, доставленные ПРИНЕСТИ команда
  • .ПЕРВЫЙ[:s]
    Номер первой строки рабочего набора данных s; -1, если он не существует, -2, если он пуст
  • .ЭТАЖ:я
    Усечь
  • .ДРОБНАЯ ЧАСТЬ:п
    Дробная часть n
  • .FSASIZE
    Размер 3270 полноэкранной области
  • .FULLDATE[:s]
    Преобразование мм / дд / гг или мм / дд / гггг в день месяца, гггг
  • .ГАММА:Икс
    Гамма(Икс)
  • .HELPDSN
    Название набора справочных данных
  • .HELPVOL
    Серийный номер тома набора справочных данных или CATLG
  • .HEX :(i1[;i2])
    Конвертировать i1 в шестнадцатеричный, с дополнением нулями до длины i2
  • .HEXSTR:s
    Преобразовать шестнадцатеричное s нанизывать
  • .ИНДЕКС:s1[;s2])
    Первый столбец, в котором s2 происходит в s1; 0, если нет совпадения
  • .ИСХОДНЫЙ:s
    1, если переменная s инициализирован
  • .ВХОД:я
    Содержание текущей строки канала я; продвинуть указатель текущей строки
  • .JDATE[:s]
    Конвертировать s от мм / дд / гг или мм / дд / гггг до юлианской даты гг.ддд
  • .JDATE4[:s]
    Конвертировать s от мм / дд / гг или мм / дд / гггг до юлианской даты гггг.дд
  • .ПОСЛЕДНИЙ[:s]
    Номер последней строки рабочего набора данных s; -1, если он не существует, -2, если он пуст
  • .ПРОШЛАЯ РАБОТА
    Номер работы последней работы, представленной с ПРОБЕГ команда
  • .LATTN
    Номер строки, исключающей выход из внимания на текущем макроуровне; -1 если очищено или выход не осуществлен
  • .ДЛИНА
    Стоимость от УСТАНОВИТЬ ДЛИНУ
  • .ДЛИНА:п[;[s][;я]])
    Длина линии я строки после (до, если отрицательное значение) строки п рабочего набора данных s
  • .LERR
    Номер строки, в которой выполняется выход из ошибки на текущем макроуровне; -1 если очищено или выход не осуществлен
  • .LGAMMA:Икс
    Ln (Гамма (Икс))
  • .ЛИНИЯ:п[;[s][;я]])
    Линия я строки после (до, если отрицательное значение) строки п рабочего набора данных s
  • .LINENO:п[;[s][;я]])
    Число я строки после (до, если отрицательное значение) строки п рабочего набора данных s
  • .LNDP
    Десятичные разряды номера строки (3)
  • .БРЕВНО:Икс
    Ln Икс
  • .LOGONID
    Идентификатор входа, используемый для текущего сеанса
  • .LOG10:Икс
    Бревно10 Икс
  • .НИЖЕ:s
    Конвертировать s в нижнем регистре
  • .MACRO
    Имя выполняемого макроса
  • .MAILDSN
    Имя набора данных почтового набора данных
  • .MAILVOL
    Серийный номер тома почтового набора данных или CATLG
  • .MAXTEMPS
    Максимальное количество временных файлов не по умолчанию, разрешенных в сеансе
  • .MEMACT
    Байты, к которым обращались во время сеанса
  • .MEMCPU
    Байты * секунды с точностью до 2 знаков после запятой
  • .ОБЪЕМ ПАМЯТИ
    Используемая рабочая память
  • .MEMTIME
    Хранение * секунды с точностью до 2 знаков после запятой
  • .MRETURN
    Номер строки в текущей выполняющейся строке макроса
  • .РОДНЫЕ[:я]
    1 если CONTROL NATIVE действует на макроуровне я (ток по умолчанию)
  • .СЛЕДУЮЩИЙ:я
    Указатель текущей строки для канала я
  • .УВЕДОМЛЯТЬ
    1 если УСТАНОВИТЬ УВЕДОМЛЕНИЕ действует
  • .НОМЕР:s
    Строковое представление значения выражения s
  • .NUMTEMPS
    Количество нестандартных временных файлов, используемых сеансом
  • .PAD:п [ ; [-]i1[;i2]])
    Такой же как .НИТЬ но прокладка с нулем вместо пробела
  • .PAGES
    Количество страниц SuperWylbur, используемых за сеанс
  • .PAGESECS
    Страницы * секунды
  • .PAGING
    Количество операций подкачки в текущем сеансе
  • .ЧИСЛО ПИ
    π (Пи)
  • .PINDEX:s1;s2)
    Первое совпадение шаблона s2 в s1; столбец + дробь (длина / 1000); 0, если нет совпадения
  • .PORT
    Имя узла VTAM или Cuu
  • .ПРЕФИКС
    Стоимость от УСТАНОВИТЬ ПРЕФИКС
  • .PRIV:s
    1, если у пользователя есть права s
  • .ПРОЕКТ
    Название проекта
  • .PROMEM
    Участник профиля, когда не в выздоровлении
  • .PUBPREFIX
    Префикс для общедоступных наборов данных (И ОБЩЕСТВЕННОСТЬ)
  • .PUBVOL
    Серийный номер тома общедоступных наборов данных или CATLG
  • .ЦИТИРОВАТЬ:s1[;s2])
    Цитировать s1 используя обрамляющий персонаж s2
  • .RAD:Икс
    Конвертировать Икс градусы в радианы
  • .RECDSN
    Имя набора данных для набора данных для восстановления после ВЫХОД ПОВРЕЖДЕН
  • .RECVOL
    Том, на котором создаются наборы данных для восстановления или CATLG
  • .ОБЕСПЕЧИТЬ РЕГРЕСС:s
    Обратный порядок строки s
  • .RJECMD
    Количество JES команды, выданные во время сеанса
  • .РИМСКИЙ:я
    Римские цифры в нижнем регистре для я
  • .КОМНАТА
    Стоимость от УСТАНОВИТЬ КОМНАТУ
  • .КРУГЛЫЙ:п[;я])
    Круглый п к я десятичные знаки
  • .RSASIZE
    Размер 3270 резервной области экрана
  • .SCRNUPDT
    Пользователь обновил поле панели с момента последней записи
  • .SCRSIZE
    Размер экрана в виде строк. Столбцов 3 цифры после десятичной точки) или -1, если не 3270
  • .SIN:Икс
    Синус Икс
  • .SINH:Икс
    Гиперболический синус Икс
  • .РАЗМЕР[:s]
    Количество строк в рабочем наборе данных s; -1, если его не существует
  • .SQRT:Икс
    Квадратный корень из Икс
  • .SSASIZE
    Размер стандартной области экрана 3270
  • .STRHEX:s
    Преобразование первых 127 символов в строку EBCIDIC s в шестнадцатеричный
  • .НИТЬ:п
    Значение выражения без экспоненциальной записи
  • .НИТЬ:(п;i1)
    Значение выражения с длиной i1
  • .НИТЬ:(п;i1;i2)
    Значение выражения с длиной i1 и i2 десятичные знаки
  • .НИТЬ:(п;-i1)
    Значение выражения с максимальной длиной i1
  • .НИТЬ:(п;-i1;i2)
    Значение выражения с максимальной длиной i1 и i2 десятичные знаки
  • .STRLEN:s
    Количество знаков в s
  • .SUBSTRING :(s;i1[;i2])
    Подстрока s из столбца i1 за i2 столбцы
  • .SWCOUNT
    Количество пользователей, вошедших в эту задачу SuperWylbur
  • .SWSYSPRE
    Префикс набора системных данных
  • .SYSMDSN
    Имя набора макросов общедоступной системы
  • .SYSMVOL
    Серийный номер тома макроса общедоступной системы или CATLG
  • .SYSNAME
    Имя задачи текущего экземпляра SuperWylbur
  • .TABS
    Настройки вкладки, разделенные запятыми
  • .РАЗГОВАРИВАТЬ
    Стоимость от УСТАНОВИТЬ РАЗГОВОР (УСТАНОВИТЬ ПЕРЕРЫВ): РАЗГОВАРИВАТЬ или же НИКАКИХ РАЗГОВОРОВ
  • .TAN:Икс
    Касательная Икс
  • .TANH:Икс
    Гиперболический тангенс Икс
  • .ВРЕМЕННЫЙ
    Уникальное имя для нового временного
  • .TEMPSLEFT
    Количество доступных нестандартных временных модулей для сеанса
  • .TEMPUPD[:s]
    1 если рабочий файл s был обновлен с последнего СПАСТИ
  • .ТЕРМИНАЛ
    Название терминала или значение .PORT
  • .TERMIO
    Количество операций ввода-вывода терминала в текущем сеансе
  • .TERSE
    ТЕРСА или же ПОДРОБНЫЙ
  • .ТЕКСТ
    Текущий набор рабочих данных по умолчанию
  • .ВРЕМЯ
    12-часовое время в форме чч:мм:SS Икс.m.
  • .TIMEMIC
    11 разрядов микросекунд с полуночи
  • .TIMEOUT
    0 если УСТАНОВИТЬ БЕЗ ТАЙМАУТА, 1 если УСТАНОВИТЬ ТАЙМАУТ, -1 если нет ВРЕМЯ привилегия
  • .TIMEOUT :(я[;s])
    Значение i-го интервала ожидания для s (ПОЛЬЗОВАТЕЛЬ или же СИСТЕМА)
  • .TIME100
    Количество секунд с полуночи до 2 знаков после запятой
  • .TIME24
    24-часовое время
  • .ПЕРЕВЕДИТЕ:(s1;s2;s3)
    Переведите s1 используя таблицу ввода s2 и выходная таблица s3
  • .ПОДРЕЗАТЬ:(s1;s2[;s3])
    Удалять s2 с концов s1 в соответствии с s3: L = левый, R = правый (по умолчанию), B = оба
  • .TRUNCATE :(п[;я])
    Усечь п к я десятичные знаки
  • .T3270
    1 если 3270
  • .ВЕРХ:s
    Конвертировать s в верхний регистр
  • .ПОЛЬЗОВАТЕЛЬ
    Пользовательская часть идентификатора входа
  • .VARUPDATE
    Количество экранных переменных панели, которые пользователь обновил с момента последней записи; -1, если не 3270
  • .ПРОВЕРЯТЬ:(s1[;s2])
    Первая позиция в s1 не присутствует в s2; 0, если все символы в s1 находятся в s2
  • .ВЕРСИЯ
    Уровень SuperWylbur в форме версия. Выпуск - ПТФ
  • .ОБЪЕМ
    Объем, установленный на сеанс, CATLG или ноль
  • .ШИРИНА
    Значение УСТАНОВИТЬ ШИРИНУ
  • .XLATTN
    Номер строки выхода из внимания для текущего макроуровня; -1, если не установлен выход без внимания
  • .XLERR
    Номер строки выхода из ошибки для текущего макроуровня; -1, если ошибка не установлена

Псевдофункции макроса SuperWylbur

Псевдофункции похожи на функции, за исключением того, что они появляются слева от назначения, например, LET.фу:бар=баз.

  • .COLUMNS :(v;i1[;i2])
    Заменить столбцыi1 через i2 из v
  • .КУРСОР
    Установить переменную панели, на которую следует поместить курсор
  • .ФАЙЛ:я
    Свяжите рабочий набор данных с каналом я
  • .ЛИНИЯ:(п[;[s][;я]])
    Заменить или вставить строку п в рабочем наборе данных s если я опущено или равно нулю
    Заменить строку я строки после (перед, если отрицательное значение) строки 'n' в рабочем наборе данных 's'
  • .СЛЕДУЮЩИЙ:я
    Установить указатель текущей строки для канала я
  • .ВЫХОД:я
    Добавить или заменить текущую строку канала я, переместить указатель текущей строки
  • .SUBSTRING :(v;i1[;i2])
    Заменить столбец i1 из v за i2 столбцы
  • .ОБНОВИТЬ:я
    Заменить последнюю строку, прочитанную из канала я

Операторы макроса SuperWylbur

  • ¬команда[;команда] * (собственная команда)
  • ВЫЗОВ Какие временные варианты процесс-варианты аргумент ЦЕНИТЬ var-name
  • ЧИСТО МЕСТНЫЕ
  • ЧИСТО МАКРОС
  • ЧИСТО МАКРОСЫ
  • ЧИСТО СЛЕД
  • КОММЕНТАРИЙ
  • КОНТРОЛЬ
  • ТРЕБОВАТЬ
  • ДЕЛАТЬ
  • ДЕЛАТЬ ДО ТОГО КАК
  • ДЕЛАТЬ ПОКА
  • КОНЕЦ
  • ВЫПОЛНЯТЬ
  • ВЫХОД
  • ИДТИ
  • ИДТИ К
  • ЕСЛИ
  • ПОЗВОЛЯТЬ Переменная = выражение
  • ПЕТЛЯ [С ПОМОЩЬЮ Переменная] ИЗ выражение-1 К выражение-2 [К выражение-3]
  • МАТЧ шаблон выражение команда
  • ИНАЧЕ
  • ПАУЗА
  • ВЫБРАТЬ [выражение]
  • НАБОР ВЫХОД
  • НАБОР LIMIT
  • НАБОР СЛЕД
  • СКАНИРОВАТЬ КЛЮЧЕВОЕ СЛОВО
  • СКАНИРОВАТЬ ПОЗИЦИОННЫЙ
  • ПОКАЗАТЬ ГЛОБАЛЬНЫЕ
  • ПОКАЗАТЬ LIMIT
  • ПОКАЗАТЬ МЕСТНЫЕ
  • ПОКАЗАТЬ МАКРОС
  • ПОКАЗАТЬ МАКРОСЫ
  • ПОКАЗАТЬ ПАНЕЛИ
  • СИГНАЛ
  • ТИП
  • TYPEI
  • ЖДАТЬ интервал
  • ЖДАТЬ б
  • КОГДА (выражение [;выражение]*)

Смотрите также

Примечания

  1. ^ Используя собственные язык разметки

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

  1. ^ а б c Функциональное описание системы разделения времени ORVYL / 370, Стэнфордский университет, 1978 г.
  2. ^ а б Справочное руководство WYLBUR, Стэнфордский университет, 1984 г.
  3. ^ "WYLBUR уходит на пенсию" В архиве 6 мая 2009 г. Wayback Machine, Новости Титана, Центр информационных технологий, Национальные институты здравоохранения (NIH), 7 апреля 2009 г.
  4. ^ "Исходный код и документация ORVYL, WYLBUR и MILTEN". Доступно бесплатно как открытый исходный код от Стэнфордского университета по лицензии, смоделированной на основе «лицензии Mozilla 1.1», сертифицированной «Open Source Initiative (OSI)».
  5. ^ «Вычислительная техника в ЦЕРНе: эра мэйнфреймов», Крис Джонс, ЦЕРН Курьер, 6 сентября 2004 г.
  6. ^ Основы Уилбура. Национальные институты здоровья. Ноябрь 1980 г.
  7. ^ Wylbur General Editing. Национальные институты здоровья. Февраль 1984 г.
  8. ^ Командные процедуры Wylbur. Национальные институты здоровья. Декабрь 1980 г.
  9. ^ Форматирование документа Wylbur. Национальные институты здоровья. Декабрь 1980 г.
  10. ^ Руководство по командам SuperWylbur®. SuperWylbur® Systems, Inc., сентябрь 1996 г.
  11. ^ Подготовка документов SuperWylbur®. SuperWylbur® Systems, Inc., сентябрь 1996 г.
  12. ^ Ввод и возврат заданий SuperWylbur®. SuperWylbur® Systems, Inc., сентябрь 1996 г.
  13. ^ Макро-программирование SuperWylbur® и пользовательские панели. SuperWylbur® Systems, Inc., сентябрь 1996 г.
  14. ^ Редактирование текста SuperWylbur®. SuperWylbur® Systems, Inc., сентябрь 1996 г.

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