Графические грамматики


Rambler's Top100


Разработка графического редактора алгоритмов управления
Шаров О. Г.

Хорошо известно, что люди понимают графические информационные структуры гораздо лучше, чем текстовые. Но, несмотря на то, что "картинка стоит тысячи слов", для компьютера до сих пор необходима генерация этих слов.

С 2000 года на кафедре "Вычислительная техника" УлГТУ ведутся работы по разработке и использованию учебно - исследовательской САПР ассоциативных процессоров управления (САПР АПУ). Исходными данными для проектирования является представление алгоритма управления в алгебраической форме в виде параллельной логической схемы алгоритма (ПЛСА). Визуальное представление алгоритма управления в виде параллельной графсхемы алгоритмов (ПГСА) проще в восприятии, ее создание занимает меньше времени и не создает путаницы при расставлении меток и безусловных переходов, поэтому было принято решение о разработке графического редактора, обеспечивающего трансляцию создаваемых в нем графических схем в их алгебраическое представление.

В процессе проектирования графического редактора САПР АПУ были определены следующие задачи:

  • выбор концепции взаимодействия графических примитивов;
  • выбор метода представления графических элементов;
  • выбор формата хранения данных;
  • выбор алгоритма прокладки связи;
  • проектирование классов;
  • построение синтаксически управляемого транслятора.

    Любой визуальный язык имеет в качестве базы два ключевых элемента: фигуру и связь между фигурами. Наиболее популярной концепцией взаимодействия этих элементов является следующая: "Графические фигуры располагаются на плоскости контекстно - свободно, связи между ними контестно - зависимо". Поэтому процесс создания ПГСА разбивается на два этапа:

  • размещение на плоскости элементов ПГСА (начало, обработка, логическое условие, объединение взаимоисключающих ветвей, распараллеливание, слияние, конец);
  • определение связей между элементами ПГСА.

    Важным при проектировании является выбор метода представления графических элементов. Один из способов - использование для создания фигур элементарных примитивов (прямая, прямоугольник, окружность, дуга). В результате имеем набор шаблонов примитивов визуального языка, количество которых соответствует количеству элементов ПГСА. Использование такого способа позволяет создавать на базе графического редактора схемы, содержащие различные элементы, т.е. возможно расширение набор элементов схем пользователем. Второй способ используется для создания специализированных графических редакторов. Шаблоны не используются. Набор элементов схем определяется на этапе проектирования, не расширяем пользователем. При разработке графического редактора САПР АПУ использовался второй, как наиболее простой.

    Графический редактор является специализированным. Использование предопределенного алфавита графических примитивов

    Для физического хранения проектных решений используется формат хранения данных, реализованный на базе XML. Выбор этого формата обусловлен схожестью его структуры с внутренней объектно - ориентированной структурой данных.

    Для выбора алгоритма прокладки связи проведен обзор ПО: MS Visio 2002, OrCad 2002, P-Cad 2002, Platinum Erwin 4. Visio имеет развитый алгоритм прокладки связи, позволяющий огибать фигуры, препятствующие прохождению связи и осуществлять пересечение связей согласно ГОСТ РФ. При всех преимуществах алгоритма имеет недостатки, так перемещении группы объектов приводит к искажению графического образа. OrCad, P-Cad, ERwin обеспечивают лишь видоизменение связи при перетаскивании, перемещение точек перелома возлагается на пользователя. Рационально заимствовать данный алгоритм прокладки связи. Он прост, знаком пользователям, эффективен.

    В основу реализации фазы синтаксически управляемого перевода положена предложенная автором графическая грамматика, позволяющая определить корректность топологических свойств алгоритма управления (синтаксис), выявить его структурные особенности (семантику) и осуществить перевод в выходную алгебраическую форму в виде ПЛСА. Грамматика относится к классу автоматных, использующих в качестве внутренней памяти эластичные ленты.
    На сегодняшний день графический редактор реализован и имеет следующие параметры:

    Среда реализации: C++ Builder 5
    Исходный код (строк): ~ 5000
    Исходный код (Кб): ~ 230
    Исполняемый файл (Кб): ~ 800

    Литература

    1. Ассоциативное микропрограммирование / Афанасьев А.Н., Гужавин А.А., Кокаев О.Г. - Саратов: Издательство Саратовского университета, 1991, 116 с.

    2. Афанасьев А.Н., Гужавин А.А., Кокаев О.Г., Соснин П.И., Лидак В.Ю. Контроль информации в системах автоматизированного проектирования. Издательство Саратовского университета, 1985, 136 с.

    3. Жоголев Е.А. Графические редакторы и графические грамматики. // Программирование, 2001,. ©3, с. 30 - 42.


    По материалам магистерской диссертации, 2004 г.
  • Шаров Олег, © 2002 - 2007