Разработка формальных грамматик

11831
знак
12
таблиц
1
изображение

Разработка формальных грамматик

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

Просмотр выражения и свертка слева-направо.

ВЫРАЖЕНИЕ = А_ВЫР!

Л_ВЫР.

Л_ВЫР = Л_ВЫР «EQU» Л_ОПЕР1! // Операция леворекурсивная=>свертка слева-направо

Л_ОПЕР1.

Л_ОПЕР1 = Л_ОПЕР1 «XOR» Л_ОПЕР2!

Л_ОПЕР1 «OR» Л_ОПЕР2!

Л_ОПЕР2.

Л_ОПЕР2 = Л_ОПЕР2 «AND» Л_ОПЕР3!

Л_ОПЕР3.

Л_ОПЕР3 = «NOT» ЗНАК!

ЗНАК.

ЗНАК = А_ВЫР ОПЕР_СР А_ВЫР.

А_ВЫР = А_ВЫР «+» А_ОПЕР1!

А_ВЫР «–» А_ОПЕР1!

А_ОПЕР1.

А_ОПЕР1 = А_ОПЕР1 «*» А_ОПЕР2!

А_ОПЕР2.

А_ОПЕР2 = А_ОПЕР2 «MOD» А_ОПЕР3!

А_ОПЕР3.

А_ОПЕР3 = А_ОПЕР4 «^» А_ОПЕР3! // Операция праворекурсивная=>свертка справа-налево

А_ОПЕР4.

А_ОПЕР4 = FUNK «(«А_ВЫР «)»!

FUNK «(» ИД_К «)»!

«(» А_ВЫР «)»!

ИД_К.

ИД_К = ИД!

КОНСТ.

ИД = «DOUBLE»!

«INTEGER»!

«STRING».

КОНСТ = «КОНСТ_10»!

«КОНСТ_16»!

«КОНСТ_2».

FUNK = «LEFT»!

«SIN».

ОПЕР_СР = «<»!

«>»!

«<=»!

«>=»!

«<>»!

«=».

EOG

2. Построим матрицу предшествования исходной грамматики в соответствии с требованиями метода параллельного предшествования:

Матрица содержит конфликты:

* строка 1, столбец 31: 1 – конфликт типа =,<

* строка 2, столбец 32: 1 – конфликт типа =,<

* строка 3, столбец 32: 1 – конфликт типа =,<

* строка 6, столбец 36: 1 – конфликт типа =,<

* строка 7, столбец 36: 1 – конфликт типа =,<

* строка 8, столбец 37: 1 – конфликт типа =,<

* строка 11, столбец 29: 1 – конфликт типа =,<

* строка 11, столбец 41: 1 – конфликт типа =,<

* строка 21, столбец 29: 4 – конфликт типа >, X

* строка 22, столбец 29: 4 – конфликт типа >, X

* строка 23, столбец 29: 4 – конфликт типа >, X

* строка 24, столбец 29: 4 – конфликт типа >, X

* строка 25, столбец 29: 4 – конфликт типа >, X

* строка 26, столбец 29: 4 – конфликт типа >, X

* строка 35, столбец 29: 1 – конфликт типа =,<

Отладка

Для наглядности построим дерево:

Конфликт 1-го типа:

Л ВЫР

 

Для избежания конфликтов 1-го типа введем новые правила:

Л_ВЫР = Л_ВЫР «EQU» Л_ОПЕР11!

Л_ОПЕР1.

Л ВЫР

 

Л_ОПЕР11 = Л_ОПЕР1.


Л ВЫР

 

Л ОПЕР11

 

“EQU”

 
Конфликт ликвидирован и рекурсия сохранена.

Л ОПЕР1

 

При ликвидации конфликтов 1-го типа исчезают конфликты 4-го типа.

Получим новую бесконфликтную грамматику:

ВЫРАЖЕНИЕ = А_ВЫР!

Л_ВЫР.

Л_ВЫР = Л_ВЫР «EQU» Л_ОПЕР11!

Л_ОПЕР1.

Л_ОПЕР11 = Л_ОПЕР1.

Л_ОПЕР1 = Л_ОПЕР1 «XOR» Л_ОПЕР22!

Л_ОПЕР1 «OR» Л_ОПЕР22!

Л_ОПЕР2.

Л_ОПЕР22 = Л_ОПЕР2.

Л_ОПЕР2 = Л_ОПЕР2 «AND» Л_ОПЕР3!

Л_ОПЕР3.

Л_ОПЕР3 = «NOT» ЗНАК!

ЗНАК.

ЗНАК = А_ВЫР ОПЕР_СР А_ВЫР2.

А_ВЫР2 = А_ВЫР.

А_ВЫР = А_ВЫР «+» А_ОПЕР11!

А_ВЫР «–» А_ОПЕР11!

А_ОПЕР1.

А_ОПЕР11 = А_ОПЕР1.

А_ОПЕР1 = А_ОПЕР1 «*» А_ОПЕР22!

А_ОПЕР2.

А_ОПЕР22 = А_ОПЕР2.

А_ОПЕР2 = А_ОПЕР2 «MOD» А_ОПЕР3!

А_ОПЕР3.

А_ОПЕР3 = А_ОПЕР4 «^«А_ОПЕР3!

А_ОПЕР4.

А_ОПЕР4 = FUNK «(» А_ВЫР2»)"!

FUNK «(» ИД_К1»)"!

«(» А_ВЫР2»)»!

ИД_К.

ИД_К1 = ИД_К.

ИД_К = ИД!

КОНСТ.

ИД = «DOUBLE»!

«INTEGER»!

«STRING».

КОНСТ = «КОНСТ_10»!

«КОНСТ_16»!

«КОНСТ_2».

FUNK = «LEFT»!

«SIN».

ОПЕР_СР = «<»!

«>»!

«<=»!

«>=»!

«<>»!

«=».

EOG

Построим матрицу предшествования бесконфликтной грамматики:


Информация о работе «Разработка формальных грамматик»
Раздел: Информатика, программирование
Количество знаков с пробелами: 11831
Количество таблиц: 12
Количество изображений: 1

Похожие работы

Скачать
15528
11
5

... 78 IsNumeric 19 2 ( 22 77 A 21 1 ) 23 78 <>  9 67 0 20 3 and 18 1 A 21 1 >  9 66 0 20 3 ) 23 78 Then 11 11 A 21 1 = 1 65 B 21 2 EndIf 11 11 Text 14 14 . 6 74 Text 16 16 = 1 65 A 21 1 End 10 10 Sub 10 10   Отладка формальной грамматики Отладка грамматики – это процесс преобразования грамматики к виду, удовлетворяющему ...

Скачать
12764
1
0

я правилами вывода, а лишь служат для отражения семантической и синтаксической стороны грамматики. Для наглядного изображения работы программы представлено дерево функционального вызова (рис 1). На нём можно проследить принцип рекурсивного спуска -основной принцип, заложенный в обработку. Он заключается в прохождении дерева от крайней левой до крайней правой вершины дерева. Кроме того, для ...

Скачать
104439
0
2

... и внешнем виде, освобождая время для продуктивной творческой деятельности. Главное преимущество Web-технологий в современных условиях заключается в их простоте и как следствие в повышении эффективности их применения. 2.1.     Язык гипертекстовой разметки HTML Популярность Internet во многом вызвана появлением World Wide Web (WWW), так как это первая сетевая технология, которая предоставила ...

Скачать
698911
0
0

... контакты", "Многоязычие в социологическом аспекте". Их исследованием занимаются социолингвистика (социальная лингвистика), возникшая на стыке языкознания и социологии, а также этнолингвистика, этнография речи, стилистика, риторика, прагматика, теория языкового общения, теория массовой коммуникации и т.д. Язык выполняет в обществе следующие социальные функции: коммуникативная / иформативная ( ...

0 комментариев


Наверх