DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 19:37

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Суббота, 08 Май, 2010 12:04 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Цель темы -- дать краткое и сжатое описание
визуального синтаксиса языка Дракон.


Главы 21 и 22 по смыслу тесно связаны,
так как дракон-редактор реализует
визуальный синтаксис языка Дракон.

Рекомендация. Сначала прочитайте главу 21
viewtopic.php?f=62&t=2628
а затем главу 22.
__________________________________________________

Глава 22

ВИЗУАЛЬНЫЙ СИНТАКСИС ЯЗЫКА ДРАКОН

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

Тезис 1. Иконы — визуальные буквы, образующие визуальный алфавит языка ДРАКОН, представленный на рис. 1.
Вложение:
Комментарий к файлу: Иконы языка Дракон
Рис.1.png
Рис.1.png [ 68.53 КБ | Просмотров: 4232 ]


Тезис 2. Заготовка-примитив и заготовка-силуэт — фигуры, показанные на рис. 166.
Вложение:
Комментарий к файлу: Заготовки
Рис.166.png
Рис.166.png [ 19.52 КБ | Просмотров: 4228 ]


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

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

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

:!: ШАМПУР-БЛОК

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

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

:!: ОПЕРАЦИЯ «ВВОД АТОМА»

Тезис 8. Атомы — фигуры, изображенные на рис. 173. Эти фигуры ис-пользуются в операции «ввод атома». Любой атом является шампур-блоком.
Вложение:
Комментарий к файлу: Атомы и валентные точки
Рис.173.png
Рис.173.png [ 59.77 КБ | Просмотров: 4231 ]


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

Тезис 10. Ввод атома — преобразование заготовки или дракон-схемы, выполняемое следующим образом: производится разрыв соединитель-ной линии в валентной точке и в это место вставляется атом, как пока-зано на рис. 167
Вложение:
Комментарий к файлу: Ввод атома
Рис.167.png
Рис.167.png [ 60.28 КБ | Просмотров: 4228 ]
.

:!: ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ ОБ АТОМАХ

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

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

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

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

:!: КРИТИЧЕСКИЕ И НЕЙТРАЛЬНЫЕ ТОЧКИ

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

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

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

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

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

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

:!: ПРАВИЛА ИСПОЛЬЗОВАНИЯ ОПЕРАЦИИ «ВВОД АТОМА» ПРИ ПОСТРОЕНИИ ДРАКОН-СХЕМЫ

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

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

Тезис 22. Матрешка — фигура, полученная путем ввода пустого атома в критическую точку пустого атома, а также путем многократного вложе-ния пустых и непустых атомов друг в друга (рис. 174).
Вложение:
Комментарий к файлу: Графоэлемент "матрешка"
Рис.174.png
Рис.174.png [ 21.35 КБ | Просмотров: 4228 ]


Тезис 23. Матрешка бывает пустой (если все содержащиеся в ней атомы пустые), частично пустой (если в ней есть как пустые, так и непустые атомы) и непустой (если все ее атомы непустые). См. рис. 175—177
Вложение:
Комментарий к файлу: Пустые и непустые матрешки
Рис._175-177.png
Рис._175-177.png [ 11.91 КБ | Просмотров: 4226 ]


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

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

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

:!: ЛИАНА

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

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

:!: ПЕРЕСАДКА ЛИАНЫ

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

Шаг 1. Производится отрыв конца лианы от точки присоединения (рис. 169).
Вложение:
Комментарий к файлу: Пересадка лианы
Рис.169.png
Рис.169.png [ 46.15 КБ | Просмотров: 4226 ]


Шаг 2. Конец лианы с помощью вертикальных и горизонтальных линий присоединяется к любой валентной точке, куда лиана может дотя-нуться без пересечения с другими линиями (рис. 169). При этом за-прещается:
• формировать второй вход в ветку (ошибка «сиамские близнецы» — см. рис. 178);
• образовывать новый цикл;
• создавать второй вход в цикл.
Однако разрешается строить новый путь из середины обычного цикла к единственному входу в этот цикл, создавая визуальный эквивалент опера-тора continue языка СИ.
Вложение:
Комментарий к файлу: Ошибка. Запрещенное соединение веток
Рис.178.png
Рис.178.png [ 15.47 КБ | Просмотров: 4230 ]

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

Шаг 4. Устраняются неоправданные изломы линий (рис. 181).
Вложение:
Комментарий к файлу: Ошибки лианы
Рис.179-181.png
Рис.179-181.png [ 62.36 КБ | Просмотров: 4229 ]


:!: ЗАЗЕМЛЕНИЕ ЛИАНЫ

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

Шаг 1. Производится отрыв конца лианы от точки присоединения (рис. 170).
Вложение:
Комментарий к файлу: Заземление лианы
Рис.170.png
Рис.170.png [ 41.46 КБ | Просмотров: 4226 ]


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

Шаг 3. Производится разрыв линии в нижней части лианы и в место раз-рыва вставляется икона «адрес» (рис. 170, 172 (шаги 8, 9).

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


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

Тезис 30. Боковое присоединение — преобразование дракон-схемы, с помощью которого в схему добавляются иконы «синхронизатор» или «формальные параметры».
Икона «синхронизатор» размещается слева от другой иконы и соединя-ется с ней горизонтальным отростком. Перечень икон, к которым осуще-ствляется боковое присоединение синхронизатора, показан на рис. 2 (пункт 8—20).
Икона «формальные параметры» размещается справа от иконы «заго-ловок» и соединяется с ней горизонтальным отростком, как показано на рис. 1 (пункт И11).

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

Тезис 32. Добавление ветки — преобразование силуэта, в который до-бавляется еще одна ветка. Число добавлений не более 30, так что мак-симальное число веток в силуэте равно 32. Эти цифры могут быть уве-личены.

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

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

Тезис 35. Дополнительный вход — преобразование силуэта, с помощью которого добавляется еще одна икона «заголовок», которая размещает-ся над любой иконой «имя ветки» (кроме левой) и соединяется с ней вертикальным отростком. При этом на верхней горизонтальной линии силуэта рисуют направленную вправо стрелку.
О г р а н и ч е н и е. При наличии веточного цикла запрещается присое-динять дополнительный заголовок к середине веточного цикла.

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

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

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

Конец главы 22
_______________________________________________________________

Примечание. Вы прочитали выжимку из главы 22
книги "Дружелюбные алгоритмы, понятные каждому".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB