Научная статья на тему 'Транслирующая автоматная графическая грамматика'

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

CC BY
114
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГРАФИЧЕСКИЙ ЯЗЫК / ГРАММАТИКА / МОДЕЛЬ

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

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

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

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

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

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

УДК 681

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

ТРАНСЛИРУЮЩАЯ АВТОМАТНАЯ ГРАФИЧЕСКАЯ ГРАММАТИКА

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

Ключевые слова: графический язык, грамматика, модель.

ЯУТ-грамматика - это транслирующая грамматика, позволяющая производить синтаксически управляемую трансляцию диаграмм графического языка в текстовые и графические формальные (целевые) описания. Для удобства определения грамматики и последующей реализации на её базе инструментальных средств, грамматика, по типу целевого языка, подразделяется на два вида:

ЯУТЧ-грамматика. Грамматика, для которой целевым является текстовое формальное описание (программы на языке программирования, текст на языке спецификаций и т. п.).

ЯУТ§-грамматика. Грамматика, позволяющая формировать выходные цепочки в терминах графических языков.

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

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

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

в = {У9и91:Л,м,я,г0)9

где

1. V - алфавит операций над внутренней памятью базового языка;

2. I/ - алфавит операций над внутренней памятью, используемый целевым языком;

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

4. 2 _ квазитермальный алфавит, являющийся расширением терминального алфавита, состоит из:

• квазитермов графических объектов,

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

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

• квазитермов связей - меток с определёнными для них семантическими различиями,

• квазитерма, определяющего отсутствие связей - меток;

5. М = ТТ и ТЫ - объединение алфавитов терминальных (77) и нетерминальных (ГА0 символов целевого языка.

К = {гь / =0,1} - схема грамматики в (множество имен комплексов продукций, причем каждый комплекс г, состоит из подмножества Ру продукций г, =у = 1, УД

6. го е Л — аксиома КУ - грамматики (начальный комплекс продукций), гкеЯ - заключительный комплекс продукций.

Продукция Р{1 е /;. имеет вид

где ^ХУц...,?,,) - /7-арное отношение, определяющее вид операции над внутренней памятью в зависимости от у е {0,1,2,3};

- оператор модификации, определённым образом изменяющий вид операции над памятью базового (целевого) языка, причём

¡л е {0,1,2};

гт - имя комплекса продукции - приёмника; X - отображение квазитерма в терминах целевого языка (набор символов т еМ).

Методика построения ЯУТЧ-грамматики расширяет методику построения ЯУ-грамматики на этапе синтеза следующими шагами: 1) определение отображения квазитерма в терминах целевого языка для каждой продукции, т. к. один и тот же квазитерм в зависимости от контекста может интерпретироваться разным набором символов целевого языка;

2) определение операций над внутренней памятью для элементов целевого языка. На этапе анализа устранение недетерминированности и неопределённости производится по аналогии с соответствующими операциями ЯУ-грамматики.

А вот задача минимизация грамматики претерпевает некоторые изменения и для ЯУМ-грамматики осуществляется как циклическое применение двух типов минимизаций:

1) минимизация количества состояний;

2) минимизация отображений.

Этап минимизации количества состояний соответствует этапу минимизации ЯУ-грамматики. Однако в данном случае эквивалентными состояниями считаются состояния, у которых, кроме одинаковых продолжений распознаваемой цепочки справа и операций над внутренней памятью, одинаковыми являются транслирующие операции над внутренней памятью и отображения в терминах целевого языка. Сама процедура минимизации остается неизменной.

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

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

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

^\П^-грамматикой языка Ь (в) называется упорядоченная восьмёрка непустых множеств

где

1. V-алфавит операций над внутренней памятью базового языка;

2. и - алфавит операций над внутренней памятью, используемый целевым языком;

3. £ - терминальный алфавит графического языка, являющийся объединением множеств его графических объектов и связей (множество примитивов графического языка);

4. £ - квазитермальный алфавит, являющийся расширением терминального алфавита, строится по аналогии с квазитермальным алфавитом ЯУТ1-грамматики;

5. М = ТТ и ТЫ - объединение алфавитов терминальных (77) и нетерминальных (77У) символов целевого языка;

6. Р = ^епега1е_трЩ(), §епега1е_ои1ри1(), 5е1ес1_оЩрЩ(), 5йск_соппес1юп_рот15()} -множество транслирующих функций по работе с элементами множества М\

7. Я = {ги / =0,1} - схема грамматики в;

8. го е Я - аксиома ЯУ-грамматики (начальный комплекс продукций), гк еЯ - заключительный комплекс продукций.

• RVTg-гpaммaтикy можно назвать расширением КУТ1-грамматики для графических языков. Она наследует правила формирования продукций грамматики, а также все этапы синтеза и анализа грамматики. Отличием является то, что элементы множества М- это графические примитивы. Некоторые из них, а именно, графические объекты, содержащие более одного входа или выхода, могут быть нагружены транслирующими функциями из множества Т7 для обеспечения соответствия входов и выходов таких объектов базового и целевого языков.

Назначение транслирующих функций и выполняемые ими операции описаны ниже: ® geпerateJnput() - генерация точек соединения для входящих связей. Выполняется при первичном анализе графических объектов, содержащих более одного входа;

• generate_output() - генерация точек соединения для исходящих связей. Выполняется при первичном анализе графических объектов, содержащих более одного выхода.

® 8е!ес1_оЩри1() - выбор исходящей точки соеди-

• нения элемента в качестве продолжателя цепочки целевого языка. Применение этой функции (назовем её событийной) осуществляется после генерации точек соединения для исходящих связей, выбирается она из сгенерированных точек. В общем случае алгоритм выбора не регламентируется, т. е. выбор является случайным;

• 5^ск_соппес1;юп_рот15() - связывание точек соединения связи и объекта. Событийная функция, выполняемая при вторичном анализе графических объектов, содержащих более одного входа. Производит связывание входящей связи

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

Алгоритм трансляции строится на базе следующих правил:

1. На количество входных и выходных точек соединения отображений ограничений не накладывается.

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

3. Точки соединения отображения, не подпадающие под действия условия п. 2, аккумулируются в памяти. Входные точки соединения будут задействованы при вторичном анализе графического объекта. Выходные точки соединения будут востребованы в тупиковых ситуациях, когда явных продолжателей трансляции диаграммы нет (см. табл. 1 правила 3-6).

ПРИМЕРЫ КУТ-ГРАММАТИК

Для наглядности Ю/Т-грамматика была реализована для базового языка ПГСА, в качестве целового текстового языка выбран язык ПЛСА (см. табл. 1), а в качестве целевого графического языка - язык сетей Петри (см. табл. 2). В столбцах таблиц приняты следующие сокращения: К - комплекс, КП - комплекс -приёмник, О - отображение. В табл. 2 в столбце О указаны ссылки на рис. 1.

ЯУТ-отношения «*» и «**» проверяют состояние лент памяти и стеков после анализа последнего символа. Трансляция считается корректно завершённой при условии, что эти отношения выполняются. Отношение, помеченное символом «*», одинаково для обеих грамматик и выглядит как

*= \У,(е1ш,е2п\е3т,е4ш,2а(1)) &

& \У3(та(1)>2, та(2)=ка(,)Х

Таблица 1. Пример ЯУТ^грамматики ___(ПГСА -> ПЛСА)

№ К Квази- К ЯУЛ-отношение о

пп терм П синтакс. гранслир.

1 г0 А0 Г| 0 0 А0

2 П ге1 Гз 0 0

3 г2 1аЬе1Р гз \У2(Ь1т) \У2ОЬ(4))

4 1аЬе1ш Гз ШЬгт) )1

5 1аЬе1К Гз \У2(Ь3т) ]!

6 1аЬе1ь Гз \У2(Ь4т)/ \У3(т'(2)= к1(3)) к'(3)) }|/к 1

7 по 1аЬе1 Гк * **

8 гз А Г] 0 0 А

9 Р П W1(i!(4)) Р(1

10 \У Г2 \¥1(11(1), 12т)/ \У2(е'<|>) М^Г'5')

] 1 Ж Г2 \У,(241V w(i

12 К Г] Wз(k> 1) W1(it(6,) [\/к]1

13 Ь Г2 ЛУ2(е,(2)) ^ 1 w{¡

14 Ь ь А« Ш,(тс(т'(2)) / \У3(т,(2) < к1(3)) W2(it(/,)

10 Ак Г2 0 0 Ак

11 Гк 0 0

Таблица 2. Пример ЯУТ§ - грамматики

(ПГСА —> сети Петри)

№ К Квази- К ЛУТ^-отношение О

пп терм П синтакс. транслир.

1 г0 А0 Г| 0 0 а

2 П ге1 Гз 0 0 е

3 г2 1аЬе1Р Гз W2(b,m) \¥2(Ь11т) е

4 1аЬе1^< Гз \У2(Ь2т) \У2(Ь12т) е

5 1аЬе1я г3 \У2(Ь3т) \¥2(Ьит) е

6 1аЬе^ Гз W2(b4m)/ ХУ3(т,(2)= к,(3)) W2(b14m) е

7 по 1аЬе1 Гк * **

8 Гз А Г| 0 0 б

9 Р Г| \¥,(11т) Ш,(1Ит) в

10 XV Г2 \^2(е'( 1') г

11 Ж Г2 W1(2t<l,)/ W2(lt(п) W2(ll(",)& Ш,(0,(И))

12 Я Г1 w1(t зт*к)/ Wз(k>l) ж

13 ь Г2 ^2(е'<2)) 114т) 3

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

14 ь Г2 \¥,(тс(тн") / Wз(mt(2) < к,(3)) WI(dec(шt(,^))

15 Ак Г2 0 0 д

16 Гк 0 0

Для ЯУП-грамматики отношение «**» не содержит операций с памятью, т. е. ** = Ш.А для 11\ГП-грамматики отношение проверяет пустоту во всех стеках и очередях, т. е. **= \У2(е11т,е 12т,е1 Зт,е14т,2а( 1&

& ^/2(та(П) = 0, ша(|2) = 0)

а б в г

д е ж з

Рис. 1. Отображения символов ПГСА в терминах

сетей Петри

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

В настоящее время реализовано инструментальное средство, позволяющее строить параллельные графические схемы алгоритмов (ПГСА) и производить их синтаксически ориентированную трансляцию в па-

раллельные логические схемы алгоритмов (ПЛСА), на базе ЯУТ^фамматики.

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

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

1. Шаров, О. Г. Автоматная графическая грамматика / О. Г. Шаров, А. Н. Афанасьев // Вестник Ульяновского государственного технического университета. - 2005. - №1. - С. 54- 56.

2. Шаров О. Г. Синтаксически ориентированная реализация графических языков на основе автоматных графических грамматик / О. Г. Шаров, А. Н. Афанасьев // Программирование. - 2005. -№6. - С. 56-66.

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

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

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