Визуальный язык ДРАКОН

Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность/Надёжность

Инструменты пользователя

Инструменты сайта


jazyk:vizualnyj_sintaksis

Описание визуального синтаксиса языка ДРАКОН

ОБЩИЕ ПОНЯТИЯ

Тезис 1. Иконы — визуальные буквы, образующие визуальный алфавит языка ДРАКОН, представленные на рис. 1.

Тезис 2. Заготовка-примитив и заготовка-силуэт — фигуры, показанные на рис. 115.

Предварительный тезис 3. Примитив — фигура, полученная путем преобразования заготовки-примитив за конечное число шагов с помощью фиксированного набора операций (перечисленных ниже в тезисе 36).

Предварительный тезис 4. Силуэт — фигура, полученная путем преобразования заготовки-силуэт за конечное число шагов с помощью фиксированного набора операций (перечисленных ниже в тезисе 37).

Тезис 5. Дракон-схема — общее понятие для обозначения примитива и силуэта.

ШАМПУР-БЛОК

Тезис 6. Шампур-блок — часть дракон-схемы, имеющая один вход сверху и один выход снизу, содержащая одну или несколько икон, причем:

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

Тезис 7. Главная вертикаль шампур-блока — вертикаль, соединяющая его вход и выход. Остальные вертикали, если они есть, находятся правее главной. Все вертикали шампур-блока ориентированы сверху вниз, кроме цепей, используемых для организации петли цикла.

ОПЕРАЦИЯ “ВВОД АТОМА”

Тезис 8. Атомы — фигуры, изображенные на рис. 122. Эти фигуры используются в операции “ввод атома”. Любой атом является шампур-блоком.

Тезис 9. Валентная точка — точка, принадлежащая заготовке или дракон-схеме, в которой разрешается произвести разрыв соединительной линии, чтобы в место разрыв вставить атом с помощью операции “ввод атома”.

Тезис 10. Ввод атома — преобразование заготовки или дракон-схемы, выполняемое следующим образом: производится разрыв соединительной линии в валентной точке и в это место вставляется атом, как показано на рис. 116.

Дополнительные сведения об атомах

Тезис 11. Атомы делятся на простые и составные. Простой атом состоит из одной иконы, составной содержит не менее двух (рис. 122).

Тезис 12. Функциональный атом — простой атом, не являющийся пустым оператором. Таковы все простые атомы, кроме комментария.

Тезис 13. Составные атомы бывают пустые и непустые. В непустом есть хотя бы один функциональный атом. В пустом нет ни одного.

Тезис 14. В полностью законченной дракон-схеме не должно быть ни одного пустого атома (так как последний эквивалентен пустому оператору). Пустые атомы разрешается использовать на всех этапах построения дракон-схемы, кроме заключительного.

Критические и нейтральные точки

Тезис 15. Валентные точки делятся на нейтральные и критические.

Тезис 16. Точка называется нейтральной, если применение операции “ввод атома” к данной точке является возможным, но не обязательным. В отличие от нее критическая точка требует обязательного ввода атома.

Тезис 17. Валентные точки находятся в заготовках и атомах. Они показаны на рис. 115 и рис. 122, где нейтральные точки обозначены светлыми кружками, критические — жирными точками.

Тезис 18. Если в фигуре (заготовке или атоме) одна критическая точка, ввод атома обязательно производится именно в нее; при этом крити-ческая точка уничтожается. Если фигура имеет две критические точки, обязательный ввод атома делается только в одну из них; при этом критическая точка, в которую произведен ввод, уничтожается, а другая критическая точка нейтрализуется, т. е. становится нейтральной.

Тезис 19. Полная совокупность критических точек охватывает:

  • критические точки в пустых атомах;
  • одну критическую точку в заготовке-примитив;
  • одну критическую точку в заготовке-силуэт.

Тезис 20. Полная совокупность нейтральных точек охватывает:

  • входные и выходные точки атомов;
  • две внутренние точки в атоме “цикл ЖДАТЬ”;
  • одну точку в заготовке-силуэт;
  • точки, полученные в результате нейтрализации критических точек.

Правила использования операции “ввод атома” при построении дракон-схемы

Тезис 21. Операция “ввод атома” применяется для ввода только простых и пустых атомов, а также цикла ЖДАТЬ. Ввод непустого атома осуществляется в два этапа; сначала вводится пустой атом, затем в его критическую точку вводится функциональный атом.

П о я с н е н и е. Ввод пустого атома — очень удобный строительный прием. Он позволяет обеспечить богатство и разнообразие создаваемых дракон-схем и используемых в них конфигураций. Среди последних особую роль играет так называемая “матрешка”.

Тезис 22. Матрешка — фигура, полученная путем ввода пустого атома в критическую точку пустого атома, а также путем многократного вложения пустых и непустых атомов друг в друга (рис. 123).

Тезис 23. Матрешка бывает пустой (если все содержащиеся в ней атомы пустые), частично пустой (если в ней есть как пустые, так и непустые атомы) и непустой (если все ее атомы непустые). См. рис. 124-126.

П о я с н е н и е. После того как пользователь эффективно использо-вал пустые атомы для придания дракон-схеме желаемой конфигурации, он должен убрать их из схемы.

Тезис 24. Чтобы устранить пустые атомы из дракон-схемы, есть два способа:

  • превратить пустой атом в непустой;
  • преобразовать пустой атом в пустую матрешку, затем превратить ее в непустую.

Тезис 25. Устранение из дракон-схемы пустых атомов автоматически приводит к уничтожению всех критических точек.

ОПЕРАЦИИ С ЛИАНОЙ

Тезис 26. Лиана — часть дракон-схемы, имеющая один вход и один выход, именуемые “началом лианы” и “концом лианы” соответственно. Началом лианы может быть любой выход икон “вопрос” и “вариант”, если он (выход) не является петлей цикла. Концом лианы считается точка слияния, в которой нижняя часть лианы соединяется с другой линией (концом лианы не может быть неразветвлённый вход иконы).

Тезис 27. Лиана может быть нагруженной (если она содержит иконы) и ненагруженной (если это просто линия).

Пересадка лианы

Тезис 28. Пересадка лианы — преобразование дракон-схемы, выполняемое за четыре шага.

Шаг 1. Производится отрыв конца лианы от точки присоединения (рис. 119).

Шаг 2. Конец лианы с помощью вертикальных и горизонтальных линий присоединяется к любой валентной точке, куда лиана может дотянуться без пересечения с другими линиями (рис. 119). При этом запрещается:

  • формировать второй вход в ветку (ошибка “сиамские близнецы” — см. рис. 127);
  • образовывать новый цикл;
  • создавать второй вход в цикл.

Однако разрешается строить новый путь из середины обычного цикла к единственному входу в этот цикл, создавая визуальный эквивалент оператора continue языка СИ (см. рис. 90, пример 7, а также рис. 41).

Шаг 3. Производится эквивалентное преобразование топологии дракон-схемы, чтобы лиане не пришлось загибаться наверх (рис. 128) и соблюдались правила построения шампур-блока (рис. 129).

Шаг 4. Устраняются неоправданные изломы линий (рис. 130).

Заземление лианы

Тезис 29. Заземление лианы — преобразование дракон-схемы, выполняемое за четыре шага.

Шаг 1. Производится отрыв конца лианы от точки присоединения (рис. 120).

Шаг 2. Конец лианы с помощью вертикальной линии присоединяется к любой точке нижней горизонтальной линии силуэта, куда он может дотянуться, не пересекая другие линии.

Шаг 3. Производится разрыв линии в нижней части лианы и в место разрыва вставляется икона “адрес” (рис. 120).

Шаг 4. Устраняются неоправданные изломы линий.

ПРОЧИЕ ОПЕРАЦИИ

Тезис 30. Боковое присоединение — преобразование дракон-схемы, с помощью которого в схему добавляются иконы “синхронизатор” или “формальные параметры”.

Икона “синхронизатор” размещается слева от другой иконы и соединяется с ней горизонтальным отростком. Перечень икон, к которым осуществляется боковое присоединение синхронизатора, показан на рис. 2 (п. 8-20).

Икона “формальные параметры” размещается справа от иконы “заголовок” и соединяется с ней горизонтальным отростком, как показано на рис. 2 (п. 1).

Тезис 31. Добавление варианта — преобразование дракон-схемы, с помощью которого в атом “переключатель” добавляется еще одна икона “вариант”. Число добавлений не более 14, так что максимальное число вариантов в переключателе равно 16.

Тезис 32. Добавление ветки — преобразование силуэта, в который добавляется еще одна ветка. Число добавлений не более 14, так что максимальное число веток в силуэте равно 16.

Тезис 33. Удаление последней ветки — преобразование силуэта, при котором удаляется крайняя правая ветка. Этот прием используется при описании бесконечного параллельного процесса, как показано в примерах на рис. 88 и рис. 89.

Тезис 34. Удаление конца примитива — преобразование примитива, при котором удаляется икона “конец”. Это необходимо для описания бесконечного параллельного процесса.

Тезис 35. Дополнительный вход — преобразование силуэта, с помощью которого добавляется еще одна икона “заголовок”, которая размещается над любой иконой “имя ветки” (кроме левой) и соединяется с ней вертикальным отростком. При этом на верхней горизонтальной линии силуэта рисуют направленную вправо стрелку, как показано в примере на рис. 84 справа.

О г р а н и ч е н и е. При наличии веточного цикла запрещается присоединять дополнительный заголовок к середине веточного цикла.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ

Тезис 36. Любая правильно построенная дракон-схема “примитив” является результатом преобразования заготовки-примитив с помощью конечного числа операций: ввод атома, пересадка лианы, добавление варианта, боковое присоединение, удаление конца примитива.

Тезис 37. Любая правильно построенная дракон-схема “силуэт” является результатом преобразования заготовки-силуэт с помощью конечного числа операций: ввод атома, добавление ветки, пересадка лианы, заземление лианы, добавление варианта, боковое присоединение, удаление последней ветки, дополнительный вход.

П о я с н е н и е. Тезисы 36 и 37 могут рассматриваться как окончательные определения понятий “примитив” и “силуэт”.

ВЫВОДЫ

  1. Изложенные выше 37 тезисов (вместе с рисунками, на которые они ссылаются) дают однозначное описание визуального синтаксиса, которое при желании можно изложить строгим математическим языком.
  2. Это описание является достаточным для построения ДРАКОН-редактора, способного решить две задачи. Во-первых, нарисовать (в соответствии с указаниями пользователя) любую абстрактную дракон-схему, принадлежащую множеству правильно построенных (удовлетворяющих требованиям визуального синтаксиса) дракон-схем. Во-вторых, создать в памяти компьютера формальное описание построенной схемы, пригодное (после заполнения икон надлежащими текстовыми операторами) для трансляции в объектные коды или для выполнения программы в режиме интерпретации.

Рисунки

Рис. 1

Рис. 2

Рис. 40-41

Рис. 84

Рис. 88

Рис. 89

Рис. 90(7)

Рис. 115

Рис. 116

Рис. 119

Рис. 122

Рис. 123-127

Рис. 128-130

jazyk/vizualnyj_sintaksis.txt · Последние изменения: 2012/04/05 10:51 — Владислав Жаринов