Инфологическое обеспечение | Языковое | Императивный базис
Содержание
Техноязык ДРАКОН-2, модифицированный (ДРАКОН-Алго, ДА)
Диалект Оберон-07-Promela (ДО7Pr)
Техноязык ДРАКОН-2, модифицированный (ДРАКОН-Алго, ДА)
Служит для описания структуры и свойств объектов данных (элементарных, сложных) с т. зр. формального исполнителя (напр. информашины) в графовой форме.
Описывает процесс решения задачи как алгоритм (систему алгоритмов) с графовым представлением маршрутной структуры; граф-схема алгоритма (ГСА) в языке называется дракон-схемой. Применяется взамен текстовых импер-языков и блок-схем (заменяя графами только структурную часть их импер-составляющей; остальное подлежит отражению как текстоэлементы дракон-схем и, возможно, схем других визуальных языков).
Модификации (в сравнении с исходным стандартом языка из /1/) состоят в следующем:
обеспечено единообразие построения графики (на основе положений в этом подпункте) и текста (на основе положений в этом подпункте) для удобства восприятия; алфавит и словарь реиндексированы по общеязыковым правилам;
добавлены новые шампур-операторы, как простые, так и комплексные;
изменено определение некоторых исходных операторов (в т.ч. графика) для удобства последующего расширения языка и гибридизации с текстовыми прогязыками;
введены средства визуализации исключений и прерываний при исполнении алгоритмов;
изменена терминология: «валентные точки» называются точками ввода; «икона» (возможно, до введения согласованного термина) - виопом (от ВИзуальный ОПератор);
введено определение синтаксиса текстоэлементов (посредством РБНФ);
правила подразделены на системные категории.
В целом изменения учитывают синтаксис текстовых прогязыков, прежде всего семейства Оберон.
Фактически для представления алгопроцессов в предметных областях, отличных от исходной для техноязыка (как импер-ЯПЗ методологии ГРАФИТ-ФЛОКС), определена расширенная Д2М-редакция техноязыка. Расширение для целей документа ограничено лексикой; правила вывода оставлены в определении шампур-метода. Описания можно найти на страницах графит-букваря.
Алфавит образуют ОС-вершины и символы, перечисленные в таблицах ниже:
Базовый словарь образуют сочетания алфавитных знаков, перечисленные в таблице ниже:
Дополнительные операторы приведены ниже:
Пояснение. Виоп Д30 визуализирует операторы проверки инвариантов алгопроцесса (контрактов процедуры/метода программы).
Дополнительные макрооператоры приведены ниже:
Виоп 30Д визуализирует оператор проверки инвариантов assert.
Д2М-схемы представляют собой орграфы, причём всё объекты, кроме дуг, являются вершинами. Направление дуг от начала схемы к концу (в терминах языка – по шампуру) подразумевается и потому специально не показывается; направление дуг против шампура показывается стрелкой на конце дуги.
Д2М-схемы эквивалентны дракон-схемам с точностью до возможного алфавита вертикалей (могут присутствовать также вершины дополнительных виопов).
В Д2М-языке разрешена декомпозиция (оформляемая оператором активной подстановки Вставка). В силу этого описание логики процесса м.б. выполнено как разнесённым способом (в виде Д2М-модели, содержащей общую и частные схемы), так и совмещённым способом – в виде единой Д2М-схемы (без подстановок). Общая схема носит имя процесса, к которому относится. Каждая частная схема описывает одну из процедур процесса (подставляемую одно- или многократно; в последнем случае обязательна формальная параметризация передаваемых/получаемых объектов для различения их в разных вхождениях).
Д2М-схемы организованы (находятся «в статике») следующим образом:
СА. Используются общие, а также маршрутно-специфические определения графит-метода. Словарные конструкции и заготовки, помимо прочего, задают упорядоченность дуг на схеме.
Определены две альтернативных диоформы (типа структуры) Д2М-схем – маршрутная неаранжируемая (не укладываемая на плоскости, в терминах языка – примитив) или аранжируемая (силуэт). Каждая из них имеет исходную форму (аксиому для вывода), называемую заготовкой. Заготовки и их элементы показаны в определении маршрут-схем графит-метода.
СБ. Определены как виопы-боковики:
формальные параметры или полка с приёмником (справа к шампур-иконе);
синхронизатор или условие (слева к шампур-иконе);
прерывание (справа к звену вертикали);
условие или исключение (слева к звену вертикали).
Виоп-боковик соединяется с вершиной горизонтальным ребром-отводком.
NB. Возможно, следует допустить присоединение исключения к заголовку и концу схемы (т.е. обработку исключительной ситуации при входе в визуал и/или выходе из него).
СВ. Детали организации Д2М-схем заданы далее в Тезисах 1...9, 11...17, 19...20, 22...23, 26...27.
Построение («динамика») дракон-схем определяется как исчисление над алфавитом и словарём, определёнными выше, с использованием маршрут-заготовки. Операции вывода распределены по классам прибавления элементов к текущей структуре, их вычитания из структуры, преобразования текущей структуры.
Операции вывода применяются с учётом топологических запретов.
ДА. Для детального, или «точного» построения определены маршрутно-специфические правила вывода, исключая операции преобразования конфигурации (соответственно недопустимы лин-соединители). Обязательна к употреблению заготовка-дейкстрал. Редактирование «по выделению» должно охватывать сепулька-блоки (вставляемые из кармана как атомы).
ДБ. Для эскизного, или «примерного» построения определены маршрутно-специфические правила вывода, включая операции преобразования конфигурации. Дейкстрал к употреблению не обязателен.
Диалект Оберон-07-Promela (ДО7Pr)
Вводится как гибридный с языком спецификаций РВ Promela и с прогязыком Оберон-07 для адекватного представления смысла этих языков с возможностью преобразования спецификаций в программы; прежде всего имеется в виду взаимодействие процессов.
5.5.2.1. Алфавит диалекта включает дополнительные знаки (см. таблицу):1
Алфавитные знаки ДО7Pr-диалекта
Пояснение 1. В прогязыках РВ явно отражается не только отправка сообщения (в описании алгопроцесса-источника), но и его получение (в описании алгопроцесса-получателя); поэтому в алфавит включены соответствующие виопы.
NB. Механизм межпроцессного обмена сообщениями (реализованный операторами техноязыка) использован для взаимодействия процессов только в языке Promela; в Обероне (любой редакции по 07) средства взаимодействия не предусмотрены, для этого создано расширение – Активный Оберон, где использован другой механизм – критических интервалов синхронизации взаимодействия (операторами AWAIT). Вопрос соответствия этих механизмов друг другу и их гармонизированного отражения в техноязыке должен решаться дополнительно.
Словарь диалекта включает производные от этих знаков макровиопы РВ, а также макровиоп Цикл Дейкстры (ЦД), как показано в диословаре ниже:
Словарные конструкции ДО7Pr-диалекта
Пояснение. В языках, использованных для гибридизации, цикл Дейкстры принят как основная циклическая конструкция (в Promela – вообще как единственная).
Как макровиоп ЦД визуализируется в инверсной форме (развилки условий по шампуру), т.к. в прямой форме выход и вход не м.б. приведены к одной вертикали без возникновения пересечений, как показано при описании ЦД в этом пункте.
Использовано расширение типизации точек ввода, определённое ДО7Pr-правилами (см. далее в п/п 3.5.3.4); ввод (ациклический) возможен только в ПОКА-подтело каждого обычного цикла-ветви ЦД, т.к. в качестве ДО-подтела добавляется очередная ветвь цикла согласно ДО7Pr-правилу ДА (см. далее).
Пояснение 2. Макровиопом 30Д визуализируется Promela-оператор atomic.
5.5.2.2. ДО7Pr-схемы представляют собой орграфы, причём всё объекты, кроме дуг, являются вершинами.
ДО7Pr-схемы эквивалентны Д2М-(дракон-)схемам с точностью до возможного алфавита вертикалей (могут присутствовать также вершины дополнительных виопов).
5.5.2.3. ДО7Pr-схемы организованы (находятся «в статике») следующим образом:
СГ. Подмножество тезисов организации получает следующую редакцию:
Тезис 17. Точки ввода находятся в заготовках и атомах. Они показаны в /3, п/р 4.2, дио/ф Визуализация формальных основ техноязыка/ для Д2М-редакции, а для данного диалекта – также в ДО7Pr-словаре (см. выше в п/п 3.5.3.1).
СД. Атомизации м.б. подвергнута только последовательность операторов.
Пояснение. Фактически это означает следующие ограничения:
«Матрёшка» не может образовываться из макровиопов 30Д Переход.
Внутрь макровиопа 30Д м.б. введены только простые атомы.
Формально по графит-методу (базис-методу) это обозначается точкой ввода типа 3 внутри макровиопа 30Д.
5.5.2.4. ДО7Pr-схемы строятся (находятся «в динамике») по следующим правилам:
ДА. Допускается только детальный метод построения схем. Соответственно невозможны пересадки и заземления лиан.
Пояснение. Запрет на операции с лианой обусловлен реализованными в Обероне-07 требованиями т.н. доказательного программирования – инженерного проектирования алгоритмов и программ на основаниях, аналогичных структурно-функциональному проектированию материальных систем, т.е. полностью расчётно-логическим путём. Ключевая роль при этом отводится ЦД как форме т.н. универсальной программы.
NB. Возможность отказа от пересадок вытекает из теоремы Бома-Джакопини о возможности представления структурной программы (алгопроцесса) только композицией следований и циклов; при этом как произвольные циклы (с досрочными выходами и/или возвратами изнутри тела, что в «классическом» техноязыке означает образование в теле цикла лианного блока), так и произвольные ветвления (нециклические лианные блоки) м.б. представлены через ЦД с надлежаще сформулированными условиями.
Обсуждение и пример представления алгоритмов через цикл Дейкстры (на базе доказательного вывода ЦД-структуры из постановки задачи) можно найти в этом документе.
Как исключение можно было бы допустить пересадку лианы внутри ветви цикла Дейкстры на его нижнюю горизонталь (подобно заземлению лианы, но без вставки виопа Адрес ветки и без возможности пересечений); полученную конструкцию называем разветвлённым циклом Дейкстры (РЦД). Однако это даёт структуру, которую можно получить и путём ввода атомов.
ДБ. Подмножество правил построения получает следующую редакцию:
Правило . Добавление варианта – преобразование дракон-схемы, с помощью которого в атом переключатель добавляется ещё один виоп вариант (или в атом цикл Дейкстры – ещё один макровиоп Обычный цикл, служащий заготовкой ветви ЦД). Пример см. схему ниже:
Дополнительные операции вывода ДО7Pr-схем
Число добавлений не более 14, так что максимальное число вариантов в переключателе (ветвей в цикле Дейкстры) равно 16.
Пояснение. Тела ветвей м.б. только атомарными шампур-блоками в силу отказа в Обероне от употребления БП.
Правило . Правильно построенный Д2М-силуэт м.б. преобразован в ДО7Pr-ЦД по переменной Имя ветки (далее – силуэтный ЦД, СЦД), а разветвлённый силуэт— в разветвлённый СЦД (РСЦД), как указано в п. Доказательство этого примера.
Пояснение. Данное преобразование необходимо, т.к. в Оберон-07 и в Promela (как, впрочем, в любом известном текстовом прогязыке) конструкция типа «силуэт» отсутствует (и м.б. напрямую смоделирована только в языках с явным БП, т.е. c goto-оператором, что нарушает требования структурности).
Пояснение 2. При преобразовании выводится силуэтный цикл Дейкстры без заземления лиан, т.к. в противном случае топологически конструкции опять-таки м.б. представлена только с употреблением явных БП; логически значения это не имеет, т.к. присваивания номера ветви в побочных вертикалях СЦД равносильны БП с заземлённых лиан в силуэте (приводят к тем же переходам).
Вводится для составления эскизов и спецификаций процессов как гибридный с естественным языком, которым сочинитель (прежде всего специалист-«предметник», не являющийся ИТ-профессионалом) пользуется для описания деятельности.
5.5.3.1. Лексика диалекта образуется алфавитом и словарём Д2М-редакции техноязыка и всех его формальных диалектов (определённых выше). Отличием является нефиксированный синтаксис текста виопов, за исключением требования явно выделять (напр. стилем знаков текста) имена деклар-сущностей (предметов, результатов и средств труда, включая величины данных); остальной текст д.б. построен так, чтобы делать возможным такое выделение.
Пояснение. Синтаксический контроль ДР-текстоэлементов в РДП-редакторе сводится к проверке, выделено ли в тексте каждой фигуры хотя бы одно поле имени; если нет, фиксируется ошибка с уведомлением сочинителя (возможно, исправление м.б. отложенным).
5.5.3.2. ДР-схемы эквивалентны дракон-схемам любого диалекта с точностью до текста вершин (см. выше).
ДР-схемы организованы и строятся по правилам используемого диалекта техноязыка.
Вершины Область могут охватывать более одной вершины ДР-схемы.
Пояснение. В формальных языках (в частности, таковыми являются иные описанные здесь диалекты и расширения техноязыка) считается допустимым охват областью только одной вершины; т.е. каждый формальный виоп должен варьироваться/декомпозироваться независимо.
Вводится для представления схем на любом диалекте техноязыка в виде, допускающем погружение в линейный порядок (выкладку схемы в линию с сохранением структуры маршрутов). Основным назначением является представление алгопроцессов на низком уровне (информашинно-зависимыми языками).
Алфавит расширения включает дополнительные знаки (см. таблицу):
Алфавитные знаки лиорасширения техноязыка
Словарь расширения включает дополнительные знаки (см. таблицу):
Словарные конструкции лиорасширения техноязыка
NB. Макровиоп Прерывание был включён в Д2М-редакцию (имея в виду, что некоторые высокоуровневые языки для гибридизации могут поддерживать прерывания).
Макровиоп ЛД1 считается состоящим из виопа Вариант, текст которого трактуется как метка следующего за ним виопа, и специально вводимого в алфавит парного ЛД-виопа Адрес БП, служащего командой безусловного перехода на метку, заданную текстом варианта (т.е. на позицию этого виопа в схеме или по адресу размещения его в предметном представлении схемы).
Вершины ЛД3, ЛД4, как и ДМ3, ДМ4 в ДМ-языке (см. п. 5.4.1) отображают безусловный переход с возвратом (вызов вспомогательного алгоритма со сменой контекста алгопроцесса).
ЛД-схемы представляют собой орграфы, причём всё объекты, кроме дуг, являются вершинами.
ЛД-схемы эквивалентны Д2М-(дракон-)схемам с точностью до возможного алфавита вертикалей (могут присутствовать также вершины дополнительных виопов).
ЛД-схемы организованы (находятся «в статике») следующим образом:
СА. Подмножество тезисов организации техноязыка пополняется следующими:
Тезис 41. В шампуре примитива (ветки силуэта), а равно и в побочной вертикали, ограниченной с начала и с конца макровиопами ЛД1, как показано для макровиопов ЛД10 и ЛД11, макровиопы ЛД1 могут также находиться между любыми другими виопами.
В завершённой ЛД-схеме любые два БП д.б. разделены хотя бы одним другим виопом (т.е. не из числа алфавитных знаков, входящих в макровиоп ЛД1).
Тексты всех вариантов-меток в одной схеме д.б. уникальны.
Тексты разных виопов Адрес БП могут совпадать; в этом случае переход является кратным.
СБ. Множество атомов для ввода пополняется атомами 1ЛД, 2ЛД, 10ЛД, 11ЛД.
Множество вершин-боковиков пополняется виопом Вставка для присоединения справа к звену вертикали.
3.5.3.4. ЛД-схемы строятся (находятся «в динамике») по следующим правилам:
ДА. Подмножество тезисов построения пополняется следующими:
Тезис 42. Ввод БП – операция, проводимая аналогично вводу других атомов, за исключением следующего:
если в побочной вертикали, намеченной для ввода, с начала и/или с конца отсутствует макровиоп БП (т.е. в верхнем и/или нижнем звене находится любая икона, не входящая в ЛД1), то текущий ввод БП возможен только в одну из этих позиций (т.е. в крайнюю верхнюю/нижнюю точку ввода вертикали);
если с точкой ввода, намеченной для ввода БП, уже соседствует другой БП, то ввод БП невозможен.
Замечание. Второе ограничение можно ослабить, введя следующее:
Точка ввода между двумя макровиопами ЛД1 является критической; в неё д.б. введён любой другой атом, кроме атома Безусловный переход.
В побочную вертикаль, не ограниченную БП, можно вводить только атомы обычного (нерасширенного) техноязыка, включая любые диалекты.
В начало страницы | Оглавление | Версия для печати
Copyright © Жаринов В.Н.
1 Вводятся как расширение алфавита техноязыка, заданного в /2, Гл.6/.