DRAKON.SU https://forum.drakon.su/ |
|
Краткое описание визуального синтаксиса языка Дракон https://forum.drakon.su/viewtopic.php?f=62&t=2629 |
Страница 1 из 1 |
Автор: | Владимир Паронджанов [ Суббота, 08 Май, 2010 12:04 ] |
Заголовок сообщения: | Краткое описание визуального синтаксиса языка Дракон |
Цель темы -- дать краткое и сжатое описание визуального синтаксиса языка Дракон. Главы 21 и 22 по смыслу тесно связаны, так как дракон-редактор реализует визуальный синтаксис языка Дракон. Рекомендация. Сначала прочитайте главу 21 viewtopic.php?f=62&t=2628 а затем главу 22. __________________________________________________ Глава 22 ВИЗУАЛЬНЫЙ СИНТАКСИС ЯЗЫКА ДРАКОН ОБЩИЕ ПОНЯТИЯ Тезис 1. Иконы — визуальные буквы, образующие визуальный алфавит языка ДРАКОН, представленный на рис. 1. Вложение: Тезис 2. Заготовка-примитив и заготовка-силуэт — фигуры, показанные на рис. 166. Вложение: Предварительный тезис 3. Примитив — фигура, полученная путем преобразования заготовки-примитив за конечное число шагов с по-мощью фиксированного набора операций (перечисленных ниже в те-зисе 36). Предварительный тезис 4. Силуэт — фигура, полученная путем преобразования заготовки-силуэт за конечное число шагов с помощью фиксированного набора операций (перечисленных ниже в тезисе 37). Тезис 5. Дракон-схема — общее понятие для обозначения примитива и силуэта. ШАМПУР-БЛОК Тезис 6. Шампур-блок — часть дракон-схемы, имеющая один вход сверху и один выход снизу, содержащая одну или несколько икон, причем: • вход и выход лежат на одной вертикали, через которую проходит путь от входа к выходу; • через каждую икону, входящую в состав шампур-блока, проходит хо-тя бы один путь от входа к выходу; • в состав шампур-блока могут входить любые иконы за исключени-ем следующих: заголовок, конец, формальные параметры, петля силуэта. Тезис 7. Главная вертикаль шампур-блока — вертикаль, соединяющая его вход и выход. Остальные вертикали, если они есть, находятся правее главной. Все вертикали шампур-блока ориентированы сверху вниз, кроме цепей, ис-пользуемых для организации петли цикла. ОПЕРАЦИЯ «ВВОД АТОМА» Тезис 8. Атомы — фигуры, изображенные на рис. 173. Эти фигуры ис-пользуются в операции «ввод атома». Любой атом является шампур-блоком. Вложение: Тезис 9. Валентная точка — точка, принадлежащая заготовке или дракон-схеме, в которой разрешается произвести разрыв соединительной ли-нии, чтобы в место разрыв вставить атом с помощью операции «ввод атома». Тезис 10. Ввод атома — преобразование заготовки или дракон-схемы, выполняемое следующим образом: производится разрыв соединитель-ной линии в валентной точке и в это место вставляется атом, как пока-зано на рис. 167 Вложение: .ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ ОБ АТОМАХ Тезис 11. Атомы делятся на простые и составные. Простой атом состоит из одной иконы, составной содержит не менее двух (рис. 173). Тезис 12. Функциональный атом — простой атом, не являющийся пустым оператором. Таковы все простые атомы, кроме комментария. Тезис 13. Составные атомы бывают пустые и непустые. В непустом есть хотя бы один функциональный атом. В пустом нет ни одного. Тезис 14. В полностью законченной дракон-схеме не должно быть ни од-ного пустого атома (так как последний эквивалентен пустому операто-ру). Пустые атомы разрешается использовать на всех этапах построе-ния дракон-схемы, кроме заключительного. КРИТИЧЕСКИЕ И НЕЙТРАЛЬНЫЕ ТОЧКИ Тезис 15. Валентные точки делятся на нейтральные и критические. Тезис 16. Точка называется нейтральной, если применение операции «ввод атома» к данной точке является возможным, но не обязатель-ным. В отличие от нее критическая точка требует обязательного вво-да атома. Тезис 17. Валентные точки находятся в заготовках и атомах. Они показа-ны на рис. 166 и 173, где нейтральные точки обозначены светлыми кружками, критические — жирными точками. Тезис 18. Если в фигуре (заготовке или атоме) одна критическая точка, ввод атома обязательно производится именно в нее; при этом критиче-ская точка уничтожается. Если фигура имеет две критические точки, обязательный ввод атома делается только в одну из них; при этом кри-тическая точка, в которую произведен ввод, уничтожается, а другая кри-тическая точка нейтрализуется, т. е. становится нейтральной. Тезис 19. Полная совокупность критических точек охватывает: • критические точки в пустых атомах; • одну критическую точку в заготовке-примитив; • одну критическую точку в заготовке-силуэт. Тезис 20. Полная совокупность нейтральных точек охватывает: • входные и выходные точки атомов; • две внутренние точки в атоме «цикл ЖДАТЬ»; • одну точку в заготовке-силуэт; • точки, полученные в результате нейтрализации критических точек. ПРАВИЛА ИСПОЛЬЗОВАНИЯ ОПЕРАЦИИ «ВВОД АТОМА» ПРИ ПОСТРОЕНИИ ДРАКОН-СХЕМЫ Тезис 21. Операция «ввод атома» применяется для ввода только простых и пустых атомов, а также цикла ЖДАТЬ. Ввод непустого атома осущест-вляется в два этапа; сначала вводится пустой атом, затем в его крити-ческую точку вводится функциональный атом. П о я с н е н и е. Ввод пустого атома — удобный строительный прием. Он позволяет обеспечить богатство и разнообразие создаваемых дракон-схем и используемых в них конфигураций. Среди последних особую роль играет так называемая «матрешка». Тезис 22. Матрешка — фигура, полученная путем ввода пустого атома в критическую точку пустого атома, а также путем многократного вложе-ния пустых и непустых атомов друг в друга (рис. 174). Вложение: Тезис 23. Матрешка бывает пустой (если все содержащиеся в ней атомы пустые), частично пустой (если в ней есть как пустые, так и непустые атомы) и непустой (если все ее атомы непустые). См. рис. 175—177 Вложение: П о я с н е н и е. После того как пользователь эффективно использовал пустые атомы для придания дракон-схеме желаемой конфигурации, он должен убрать их из схемы. Тезис 24. Чтобы устранить пустые атомы из дракон-схемы, есть два способа: • превратить пустой атом в непустой; • преобразовать пустой атом в пустую матрешку, затем превратить ее в непустую. Тезис 25. Устранение из дракон-схемы пустых атомов автоматически приводит к уничтожению всех критических точек. ЛИАНА Тезис 26. Лиана — часть дракон-схемы, имеющая один вход и один выход, именуемые «началом лианы» и «концом лианы» соответственно. Нача-лом лианы может быть любой выход икон «вопрос» и «вариант», если он (выход) не является петлей цикла. Концом лианы считается точка слия-ния, в которой нижняя часть лианы соединяется с другой линией (кон-цом лианы не может быть неразветвленный вход иконы). Тезис 27. Лиана может быть нагруженной (если она содержит иконы) и ненагруженной (если это просто линия). ПЕРЕСАДКА ЛИАНЫ Тезис 28. Пересадка лианы — преобразование дракон-схемы, выполняе-мое за четыре шага. Шаг 1. Производится отрыв конца лианы от точки присоединения (рис. 169). Вложение: Шаг 2. Конец лианы с помощью вертикальных и горизонтальных линий присоединяется к любой валентной точке, куда лиана может дотя-нуться без пересечения с другими линиями (рис. 169). При этом за-прещается: • формировать второй вход в ветку (ошибка «сиамские близнецы» — см. рис. 178); • образовывать новый цикл; • создавать второй вход в цикл. Однако разрешается строить новый путь из середины обычного цикла к единственному входу в этот цикл, создавая визуальный эквивалент опера-тора continue языка СИ. Вложение:
Комментарий к файлу: Ошибка. Запрещенное соединение веток Рис.178.png [ 15.47 КБ | Просмотров: 4286 ] Шаг 3. Производится эквивалентное преобразование топологии дракон-схемы, чтобы • лиане не пришлось загибаться наверх (рис. 179); • соблюдались правила построения шампур-блока (рис. 180). Шаг 4. Устраняются неоправданные изломы линий (рис. 181). Вложение: ЗАЗЕМЛЕНИЕ ЛИАНЫ Тезис 29. Заземление лианы — преобразование дракон-схемы, выпол-няемое за четыре шага. Шаг 1. Производится отрыв конца лианы от точки присоединения (рис. 170). Вложение: Шаг 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 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |