Научная статья на тему 'Автоматная графическая грамматика'

Автоматная графическая грамматика Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
144
41
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шаров Олег Геннадьевич, Афанасьев Александр Николаевич

Предлагается формализм автоматной графической грамматики, предназначенной для анализа графовых языков. Определены основные достоинства формализма перед существующими аналогами

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Автоматная графическая грамматика»

УДК 621.3

О. Г. ШАРОВ, А. Н. АФАНАСЬЕВ

АВТОМАТНАЯ ГРАФИЧЕСКАЯ ГРАММАТИКА

Предлагается формализм автоматной графической грамматики, предназначенной для анализа графовых языков. Определены основные достоинства формализма перед существующими аналогами.

Автоматная графическая грамматика (ЯУ - грамматика), является развитием и расширением Я, ЯЭ и Яв-грамматик [5, 8], и предназначена для синтаксического анализа двух- и более мерных языков, синтаксически реализуемых логической моделью визуальных языков.

ОПРЕДЕЛЕНИЕ ЯУ - ГРАММАТИКИ

ЯУ - грамматикой языка Цв) называется упорядоченная пятёрка непустых множеств

С = (Р,1,1,/?,г0), где V - вспомогательный алфавит

(алфавит операций над внутренней памятью); терминальным алфавитом I визуального языка является объединение множеств его графических объектов и связей (множество примитивы визуального языка);

квазитермальным алфавитов I является расширение терминального алфавита. Он состоит из:

в квазитермов (термов) графических объектов; * квазитермов графических объектов, имеющих более одного входа;

© квазитермов связей - меток, с определёнными для них семантическими различиями. Связью - меткой является каждая связь, исходящая из графического объекта, содержащего более одного входа или выхода. Допустимо одну из связей такого графического объекта не обозначать как связь - метка. Механизм меток используется для возврата к не проанализированным частям графического образа;

© квазитерм, определяющего отсутствие связей - меток. Такой квазитерм используется для прекращения анализа диаграммы при условии выполнения операции(ий) над внутренней памятью.

Л = {/;,/ = 0,/} - схема грамматики в (множество имён комплексов продукций, причем каждый комплекс г состоит из подмножества У? продукций

г = [Р1П] = и}); /-0 е /? - аксиома ЯУ - грамматики (начальный комплекс продукций), г. е Я - заключи-

тельный комплекс продукций.

Продукция

имеет

вид

Р 'а

I у .

где ИГ(Ур...,У„) -

п -арное отношение, определяющее вид операции над внутренней памятью в зависимости от

О. Г. Шаров, А. Н. Афанасьев, 2005

V е {0,1,2,3}; С2И - оператор модификации, определённым образом изменяющий вид операции над памятью, причём [х е {0,1,2] ; гт - имя комплекса продукции-приемника.

В качестве внутренней памяти предлагается использовать стеки и очереди для анализа графических объектов, имеющих более одного выхода (чтобы хранить информации о связях - метках) и эластичные ленты [6] для графических объектов, имеющих более одного входа (чтобы отмечать количество возвратов к данной вершине, а, следовательно, количество входящих дуг).

Определим следующую интерпретацию правил ЯУ - грамматики в зависимости от параметров \х и

V .

Пусть ц = 0, тогда <^>0 - пустой оператор, т. е.

Отношение (ур...,уя) определяет операции

над памятью, реализованной моделями стек или очередь.

При X = 0 никаких действий над памятью не производится.

При X = 1 (X = 2) в стек (очередь) с номером 1,л| записывается (стирается) причём,

если запись производится безусловно, то стирание осуществляется при условии, что у5 в правиле ЯУ -

грамматики и вершине стека (очереди) совпадают. В противном случае данное правило считается неприемлемым (стирание не производится).

При и = 1 оператор О,

имеет

вид

= определён для

Хе {1,2,3} и задаёт простую операцию записи, чтения или сравнения, но уже не над стеком (очередью), а над ленточной памятью, где (а,(£,),...,ап(£л)) указывают номера ячеек соответствующих эластичных лент , куда будут записаны при X = 1 (счита-

ны при X = 2, сравнены при А, = 3 ) символы

Ур"-?Ул ^ ^ •

При \х = 2 оператор С12 имеет вид

(у......= (г"'.....гЛ)/»^ (у."1.....у/")

и определён для \ е {1,2}, е{2,3} и условную операцию над ленточной памятью, т. е. операция в числителе выполняется при условии выполнения операции в знаменателей

В операциях нал внутренней памятью номера ячеек лент (а,) кодируются следующим образом:

( - номер текущего графического примитива из числа примитивов данного типа;

Ь - номер графического примитива от которого исходит управляющий сигнал (применяется только для связей).

ЯУ-грамматика эффективна как для порождения, так и для распознавания.

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

МЕТОДИКА ПОСТРОЕНИЯ ЯУ - ГРАММАТИКИ

Построение КУ - грамматики реализуется в две фазы: синтез и анализ.

Синтез ЯУ - грамматики состоит из следующих этапов.

1. Описывается расположение меток и определяются семантические различия для связей, имеющих общее графическое представление.

2. Определяется терминальный алфавит контролируемого визуального языка и алфавит квазитермов.

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

4. Определяются отношения над внутренней памятью, обеспечивающие эффективный контроль связности графических объектов.

5. По матрице допустимых паросочетаний, т. е. системе отношений, строится графовая форма Ю/-грамматики, вершинам графа поставлены в соответствие имена комплексов правил, а дугам - квазитермы и операции над внутренней памятью. ЯУ - грамматика может быть представлена также табличной и аналитической формами.

Анализ осуществляется в два этапа:

1. Устранение недетерминированности и неопределённости.

2. Минимизация ЯУ - грамматики.

Пример графовой формы ЯУ - грамматики для \ языка графических схем алгоритмов (ГСА) представлен на рис. 1.

Рис. 1. ЛУ - грамматика языка ГСА

ВРЕМЕННАЯ ОЦЕНКА ЭФФЕКТИВНОСТИ ЯУ-АНАЛИЗАТОРА

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

/ = с • А или / = с • к • , к = —

/

где, с - константа реализации алгоритма, показывающая, сколько команд (операторов) затрачивается на анализ одного объекта при реализации алгоритма контроля на конкретной ПЭВМ; ¿5 - количество переходов по состояниям автомата; Ьк - количество

элементов диаграммы.

Доказано, что для любых графовых языков отношение количества переходов по состояниям автомата к количеству элементов диаграммы не превышает 2 (к е [1,2)), т. е. является линейным. Количество переходов по состояниям автомата зависит от характеристик графических объектов, принадлежащих языку.

Так, для ГСА Е(к) = 1,153.

ДОСТОИНСТВА АВТОМАТНОЙ ГРАФИЧЕСКОЙ ГРАММАТИКИ

Одним из главных достоинств ЯУ - грамматики является линейная зависимость времени анализа диаграммы от количества графических объектов и связей, содержащихся в ней. Причём для графовых языков коэффициент линейности изменяется в интервале

П;2).

В процессе работы ЯУ-анализатор не использует сентенциальную форму, поскольку производится поэлементный анализ входной цепочки и не производится никаких её изменений, что обеспечивает, как минимум, двойную экономию памяти ПЭВМ.

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

Таблица 1

Сравнительные характеристики грамматик

• Учёт контекста Временная сложность Использование сентенциальной формы

Позиционная грамматика [1] нет — Да

Многоуровневая графовая грамматика [2] граф экспоненциальная Да

Реляционная грамматика [3] нет экспоненциальная Да

Сохраняющая графовая грамматика [4] граф полиномиальная • Да

ЯУ-грамматика нет линейная нет

РЕАЛИЗАЦИЯ И ИСПОЛЬЗОВАНИЕ RV-ГРАММАТИК

В настоящее время:

1. Разработанны RV-грамматики визуальных языков сетей Петри, параллельных графических схем алгоритмов (ПГСА) (транслирующего типа) и графических схем алгоритмов (ГСА).

2. Реализован функция контроля языка ГСА, в виде макроса для Microsoft Visio 2002.

3. Разработан графический редактор алгоритмов управления [9], реализующий трансляцию ПГСА в параллельные логические схемы алгоритмов (ПЛСА), являющийся составной частью учебной САПР ассоциативных процессоров управления (УСАПР АПУ).

Ведутся работы по реализации универсального синтаксически-ориентированного графического редактора, позволяющего уменьшить риск перепроектирования. Для организации топологического контроля проектных решений используются RV-грамматики. Архитектура графического редактора представлена на рис. 2.

Рис. 2. Архитектура универсального синтаксиче-ски-ориентированного графического редактора

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Costagliola, G., Lucia A. D., Orefice S., Tortora G. Automatic Generation of Visual Programming Environments// IEEE Computer. - 1995. Vol. 28, no. 3, - pp. 56-66.

2. Rekers, J., Schurr A. Defining and parsing visual languages with layered graph grammars // Journal of Visual Languages and Computing. - 1997. - Vol. 8, no. 1. -pp. 27-55.

3. Wittenburg, К. Relational grammars: Theory and practice in a visual language interface for process modeling. - 1996.

http://citeseer.ist.psu.edu/wittenburg96relational.html.

4. Zhang, D.-Q., Zhang K., Cao J. A context-sensitive graph grammar formalism for the specification of visual languages// The Computer Journal. - 2001. -Vol. 44, no. 3. — pp. 186-200.

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

6. Глушков, В. М. Алгебра. Языки программирования/В. М. Глушков, Г. Е. Цейтлин, Е. Л. Ющен-ко. - Киев: Наукова думка, 1978. - 320 с.

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

8. Контроль информации в системах автоматизации проектирования / А. Н. Афанасьев, А. А. Гужавин, О. Г. Кокаев. - Саратов: Изд-во Сарат. ун-та, 1985.- 136 с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

9. Шаров, О. Г. Анализ и разработка графических средств представления и обработки алгоритмов управления// Тезисы докладов XXXVII научно-технической конференции УлГТУ. - Т. 2. - Ульяновск, 2003.-С. 14-15.

Шаров Олег Геннадьевич, магистр техники и технологии, аспирант кафедры «Вычислительная техника».

Афанасьев Александр Николаевич, кандидат технических наук, доцент кафедры «Вычислительная техника».

i Надоели баннеры? Вы всегда можете отключить рекламу.