Главная      Учебники - Разные     Лекции (разные) - часть 17

 

Поиск            

 

Указания методические к курсовой работе по дисциплине «Теория языков программирования и методы трансляции»

 

             

Указания методические к курсовой работе по дисциплине «Теория языков программирования и методы трансляции»

Министерство образования и науки российской федерации

Федеральное агентство по образованию РФ

Государственное образовательное учреждение
высшего профессионального образования

"Ижевский государственный технический университет"

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к курсовой работе по дисциплине

«Теория языков программирования и методы трансляции»

Ижевск

Издательство ИжГТУ

2008

УДК 62-50 (076.5)

Составитель: д-р техн. наук проф. М. А. Сенилов

Рецензент: д-р техн. наук, проф. А. И. Мурынов

Методические указания к курсовой работе по дисциплине «Теория языков программирования и методы трансляции» / Сост. М. А. Сенилов. – Ижевск:

Изд-во ИжГТУ, 2008. – 28 с.

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

Методические указания предназначены для студентов направления 230100 – «Информатика и вычислительная техника» и специальности 230105 – «Программное обеспечение вычислительной техники и автоматизированных систем».

© Сенилов М. А. составление, 2008

© Издательство Ижевского государственного

технического университета


ОГЛАВЛЕНИЕ

1. ТЕМА, ЦЕЛЬ И СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ... 4

2. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ. 4

3. ПЕРЕХОД ОТ ПРАВОЛИНЕЙНОЙ ГРАММАТИКИ К АВТОМАТНОЙ.. 6

4. ПОСТРОЕНИЕ НЕДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА.. 6

5. СВЕДЕНИЕ НЕДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА К ДЕТЕРМИНИРОВАННОМУ 10

6. ПОСТРОЕНИЕ МИНИМАЛЬНОГО АВТОМАТА.. 14

7. ИСПОЛЬЗОВАНИЕ СЕТЕЙ ПЕТРИ ПРИ ПЕРЕХОДЕ ОТ ГРАММАТИКИ К МИНИМАЛЬНОМУ АВТОМАТУ 17

8. ПОРЯДОК ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ... 22

9. РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ... 23

СПИСОК ЛИТЕРАТУРЫ... 25


1. ТЕМА, ЦЕЛЬ И СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ

Тема курсовой работы: Синтез распознающего автомата.

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

Содержание и основные этапы работы:

1) построение праволинейной грамматики;

2) построение автоматной грамматики по праволинейной;

3) построение недетерминированного конечного автомата;

4) сведение недетерминированного конечного автомата к детерминированному;

5) построение минимального автомата;

6) выполнение этапов 2-5 с использованием аппарата сетей Петри;

7) программная реализация автомата.

2. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

Исходными данными для курсовой работы являются две таблицы – табл. 1 и табл. 2 – и правила вывода R, приведенные ниже.

В табл. 1 первоначально записана лишь первая строка, содержащая перечисление 18 символов сi. Во вторую строку si записываются первые 18 символов фамилии, имени и отчества студента с обязательными пробелами между фамилией и именем, именем и отчеством. Затем в третью строку студент заносит для каждого из 18 символов строки символ из алфавита {x0, x1, x2, x3, x4, x5, x6 ,x7} в соответствии с табл. 2.

Таблица 1

ci

c1

c2

c3

c4

c5

c6

c7

c8

c9

c10

c11

c12

c13

c14

c15

c16

c17

c18

si

Б

Е

Р

Е

С

Н

Е

В

_

В

И

К

Т

О

Р

_

В

Я

xi

x5

x6

x0

x6

x4

x7

x6

x2

x5

x2

x3

x7

x5

x4

x0

x5

x2

x7

Таблица 2 построена на основе подсчета появлений каждой буквы русского алфавита в фамилиях, именах и отчествах контингента студентов.


Затем буквы были сформированы в восемь групп с таким расчетом, чтобы появление каждого из символов x0 – x7 было равновероятным.

Таблица 2

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

x1

x5

x2

x4

x6

x6

x4

x3

x3

x0

x7

x0

x3

x7

x4

x5

P

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

_

x0

x4

x5

x7

x2

x5

x1

x2

x2

x0

x6

x1

x1

x3

x7

x5

Наконец, задана формальная грамматика: G=<Vt, Vn, S, R>, где Vt={c1, c2, c3, … , c18} – терминальный словарь; Vn={S, A, B, C, D, E, F} – нетерминальный словарь; SÎVn – начальный символ грамматики; R – множество правил вывода, которые имеют следующий вид:

S®c1 c2 c3 A; S®c1 c4 c5 B; S®c6 C; S®c7 F;

A®c8 D; A®c9; B®c8 E; B®c9; C®c8E; C®c9;

D®c10 S; D®c11; E®c10 S; E®c11;

F®c12 c13 c14 c15; F®c16 c13 c14 c15; F®c17 c18 c15.

Эта грамматика, являющаяся праволинейной, приводится к виду

G'=<V't, V'n, S, R'>, где V't={x0, …, x7} – новый терминальный словарь;

R' – множество правил вывода, получаемых из заданных заменой символов из алфавита Vt символами из алфавита V't в соответствии с таблицей 1. В данном примере они имеют вид:

S®x5 x6 x0 A | x5 x6 x4 B | x7 C | x6 F;

A®x2 D | x5;

B®x2 E | x5;

C®x2 E | x5;

D®x2 S | x3;

E®x2 S | x3;

F®x7 x5 x4 x0 | x5 x5 x4 x0 | x2 x7 x0.

Здесь “|” – металингвистический символ (связка), читаемый как "ИЛИ".

Примеры цепочек, принадлежащих языку L(G'), порождаемому грамматикой G': x5 x6 x0 x5, x7 x2 x3, x6 x7 x5 x4 x0. Напротив, цепочки x2 x7 x0 x2 x7, x6 x5 x2 x5 x6 не принадлежат L(G'), так как они не выводимы в грамматике G'.

Грамматика G', порождаемая из заданной грамматики G, является индивидуальным заданием студента.

Примечание. Мощность |V't| словаря V't (число символов в нем) в рассмотренном случае равна 7: словарь не содержит символа x1.


3. ПЕРЕХОД ОТ ПРАВОЛИНЕЙНОЙ ГРАММАТИКИ К АВТОМАТНОЙ

Этот этап выполняется путем расширения нетерминального словаря способом, вытекающим из возможности преобразования праволинейной грамматики в модифицированную автоматную G''=< V't , V''n , S, R''>. Для рассматриваемого примера, который будет сквозным в данных указаниях, получим множество R'' правил вывода:

S®x5 S1; S1®x6 S2; S2®x0 A;

S®x5 S3; S3®x6 S4; S4®x4 B;

S®x7 C;

S®x6 F;

A®x2 D; A®x5 A1; A1®e;

B®x2 E; B®x5 B1; B1®e;

C®x2 E; C®x5 C1; C1®e;

D®x2 S; D®x3D1; D1®e;

E®x2 S; E®x3 E1; E1®e;

F®x7 F1; F1®x5 F2; F2®x4 F3; F3®x0 F4; F4®e;

F®x5 F5; F5®x5 F6; F5®x4 F7; F7®x0 F8; F8®e;

F®x2 F9; F9®x7 F10; F10®x0 F11; F11®e.

Таким образом, нетерминальный словарь теперь имеет вид V''n = {S, S1, S2, S3, S4, A, A1, B, B1, C, C1, D, D1, E, E1, F, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11} и его мощность |V''n | равна 27.

4. ПОСТРОЕНИЕ НЕДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА

Построим на основе грамматики G'' конечный автомат. При этом нетерминальным символам грамматики V''n поставим в соответствие состояния автомата (оставим для них те же обозначения). Начальному нетерминалу S поставим в соответствие начальное состояние автомата S. Правилам вывода поставим в соответствие переходы автомата.


В результате получим таблицу 3 – таблицу переходов недетерминированного конечного автомата, соответствующего рассматриваемому примеру.

Таблица 3

Таблица переходов недетерминированного частичного автомата

x0

x2

x3

x4

x5

x6

x7

S

S1,S3

F

C

0

S1

S2

0

S2

A

0

S3

S4

0

S4

B

0

A

D

A1

0

A1

1

B

E

B1

0

B1

1

C

E

C1

0

C1

1

D

S

D1

0

D1

1

E

S

E1

0

E1

1

F

F9

F5

F1

0

F1

F2

0

F2

F3

0

F3

F4

0

F4

1

F5

F6

0

F6

F7

0

F7

F8

0

F8

1

F9

F10

0

F10

F11

0

F11

1

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


Чтобы получить полностью определенный автомат, следует ввести дополнительное состояние Er (ошибка). Для этого нужно дополнить автомат соответствующей строкой с состоянием Er и во все пустые клетки таблицы переходов вписать это состояние Er (см. табл. 4).

Таблица 4

Таблица переходов недетерминированного полностью определенного автомата

x0

x2

x3

x4

x5

x6

x7

S

Er

Er

Er

Er

S1,S3

F

C

0

S1

Er

Er

Er

Er

Er

S2

Er

0

S2

A

Er

Er

Er

Er

Er

Er

0

S3

Er

Er

Er

Er

Er

S4

Er

0

S4

Er

Er

Er

B

Er

Er

Er

0

A

Er

D

Er

Er

A1

Er

Er

0

A1

Er

Er

Er

Er

Er

Er

Er

1

B

Er

E

Er

Er

B1

Er

Er

0

B1

Er

Er

Er

Er

Er

Er

Er

1

C

Er

E

Er

Er

C1

Er

Er

0

C1

Er

Er

Er

Er

Er

Er

Er

1

D

Er

S

D1

Er

Er

Er

Er

0

D1

Er

Er

Er

Er

Er

Er

Er

1

E

Er

S

E1

Er

Er

Er

Er

0

E1

Er

Er

Er

Er

Er

Er

Er

1