Разделы презентаций


Способы задания регулярных языков

Содержание

Системное программное обеспечениеТема № 10Способы задания регулярных языков

Слайды и текст этой презентации

Слайд 1курс лекций по дисциплине
Системное программное обеспечение
Преподаватель: к.т.н., доцент Карамзина А.Г.
ФЕДЕРАЛЬНОЕ

АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра ТК

Тема: Способы задания регулярных языков

курс лекций по дисциплинеСистемное программное обеспечениеПреподаватель: к.т.н., доцент Карамзина А.Г.ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО

Слайд 2Системное программное обеспечение
Тема № 10
Способы задания регулярных языков

Системное программное обеспечениеТема № 10Способы задания регулярных языков

Слайд 3Системное программное обеспечение

Способы задания регулярных языков
Регулярные языки можно задать с

помощью:
регулярных (праволинейных и леволинейных) грамматик G(VT,VN,P,S), V=VN∪VT;
конечных автоматов

(КА);

регулярных множеств (и обозначающих их регулярных выражений).

А→Вγ или А→γ, где A,B∈VN, γ∈VT*

А→γВ или А→γ, где A,B∈VN, γ∈VT*

M(Q, V, δ, q0, F),

Все три способа в равной степени
могут быть использованы
для определения регулярных языков.

Если над множествами цепочек символов из алфавита V определить операции конкатенации и итерации как:

PQ – конкатенация P∈V* и Q∈V*: PQ={pq ∀p∈P, ∀q∈Q};
P* – итерация P∈V*: P*={pn ∀p∈P, ∀n∈N};

тогда для алфавита V регулярные множества определяются рекурсивно:
∅ – регулярное множество;
{λ} – регулярное множество;
{а} – регулярное множество ∀a∈V;
если Р и Q – произвольные регулярные множества, то множества P∪Q, PQ
и Р* также являются регулярными множествами;
ничто другое не является регулярным множеством.

Регулярные множества – это множества цепочек символов над заданным алфавитом, построенные определенным образом (с использованием операций объединения, конкатенации и итерации).

Системное программное обеспечениеСпособы задания регулярных языковРегулярные языки можно задать с помощью: регулярных (праволинейных и леволинейных) грамматик G(VT,VN,P,S),

Слайд 4Системное программное обеспечение

Способы задания регулярных языков
Все три способа определения регулярных

языков эквивалентны.
Существуют алгоритмы, которые позволяют для регулярного языка, заданного

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

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

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

Связь регулярных грамматик и конечных автоматов:
на основе имеющейся регулярной грамматики можно построить эквивалентный ей КА;
для заданного КА можно построить эквивалентную ему регулярную грамматику.

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

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

Слайд 5Системное программное обеспечение

Способы задания регулярных языков
Построение КА на основе леволинейной

грамматики.
Q=VN∪{H}
каждому нетерминальному символу из множества VN грамматики G соответствует

одно состояние из множества Q автомата М, также во множество состояний автомата добавляется еще одно дополнительное состояние, которое обозначается Н

V=VT

входным алфавитом автомата М является множество терминальных символов грамматики G′

P

просматривается множество правил P грамматики G

А→t, A∈VN, t∈VT

в δ добавляется:
δ (t, H)=A






А→Bt, A, B∈VN, t∈VT

в δ добавляется:
δ (t, B)=A






F={S}

q0=H

Имеется леволинейная грамматика

G(VT, VN, P, S),

необходимо построить эквивалентный ей КА

M(Q, V, δ, q0, F).

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

Системное программное обеспечениеСпособы задания регулярных языковПостроение КА на основе леволинейной грамматики. Q=VN∪{H}каждому нетерминальному символу из множества VN

Слайд 6Системное программное обеспечение

Способы задания регулярных языков
Пример:

дана регулярная леволинейная грамматика G, необходимо построить КА:

G({"а", "[", "]",

"(", ")",";"}, {S,A,B}, Р, S)
Р:
S→S;|A()|Ba)
A→[];|A(|A)|Aa|A;
B→[a]| B]|B)|B(|Ba|B[|B);

Сначала нужно преобразовать ее к автоматному виду:
G'({"а", "[", "]", "(", ")",";"}, {S, S1, S2, A, A1, A2, B, B1, B2, B3}, Р, S)
Р':
S→S;| S1)| S2)
S1→A(
S2→Ba
A→ A2;|A(|A)|Aa| A;
A2→A1]
A1→[
B→ B2] | B]|B)|B(|Ba|B[| B3;
B2→B1a
B1→[
B3→B)

Системное программное обеспечениеСпособы задания регулярных языковПример:     дана регулярная леволинейная грамматика G, необходимо построить

Слайд 7Системное программное обеспечение

Способы задания регулярных языков
G'({"а", "[", "]", "(", ")",";"},

{S, S1, S2, A, A1, A2, B, B1, B2, B3},

Р, S)
Р':
S→S;| S1)| S2)
S1→A(
S2→Ba
A→ A2;|A(|A)|Aa| A;
A2→A1]
A1→[
B→ B2] | B]|B)|B(|Ba|B[| B3;
B2→B1a
B1→[
B3→B)

Теперь на основе автоматной грамматики строится КА:

строится множество состояний КА:

Q=VN∪{H}={S, S1, S2, A, A1, A2, B, B1, B2, B3,H};

входной алфавит:
V={"а", "[", "]", "(", ")",";"};


Системное программное обеспечениеСпособы задания регулярных языковG'({

Слайд 8Системное программное обеспечение

Способы задания регулярных языков
G'({"а", "[", "]", "(", ")",";"},

{S, S1, S2, A, A1, A2, B, B1, B2, B3},

Р, S)
Р':
S→S;| S1)| S2)
S1→A(
S2→Ba
A→ A2;|A(|A)|Aa| A;
A2→A1]
A1→[
B→ B2] | B]|B)|B(|Ba|B[| B3;
B2→B1a
B1→[
B3→B)

просматривается множество правил грамматики и строятся функции переходов:

δ(‘;’, S)=S δ(‘)’, S1)=S δ(‘)’, S2)=S

δ(‘(’, A)=S1

δ(‘a’, B)=S2

δ(‘;’, A2)=A δ(‘(’, A)=A δ(‘)’, A)=A δ(‘a’, A)=A δ(‘;’, A)=A

δ(‘]’, A1)=A2

δ(‘[’, H)=A1

δ(‘]’, B2)=B δ(‘]’, B)=B δ(‘)’, B)=B δ(‘(’, B)=B
δ(‘a’, B)=B δ(‘[’, B)=B δ(‘;’, B3)=B

δ(‘a’, B1)=B2

δ(‘[’, H)=B1

δ(‘)’, B)=B3

начальное состояние КА q0=H;

множество конечных состояний F={S}.


Системное программное обеспечениеСпособы задания регулярных языковG'({

Слайд 9Системное программное обеспечение

Способы задания регулярных языков
Построение леволинейной грамматики на основе

КА.
Имеется КА

M(Q, V, δ, q0, F),

необходимо построить эквивалентную

ему леволинейную грамматику

G(VT, VN, P, S).

VT=V

VN=Q/{q0}

множество VN грамматики G строится на основании множества Q автомата М так, чтобы каждому состоянию автомата, за исключением начального состояния, соответствовал один нетерминальный символ грамматики

δ

просматривается функция переходов автомата М

δ(t, А)=∅

δ(t, А)={B1, B2, …, Bn}, n>0,
A∈Q, ∀n≥i>0: Bi∈Q, t∈V

i=1, n, 1

A=q0

-

во множество P добавляется:
Bi→At


во множество P добавляется:
Bi→t


+

F={F0}

-

VN=VN∪{S}
S→F1|F2|…|Fn

S=F0

+

1

Системное программное обеспечениеСпособы задания регулярных языковПостроение леволинейной грамматики на основе КА. Имеется КАM(Q, V, δ, q0, F),

Слайд 10Системное программное обеспечение

Способы задания регулярных языков
Свойства регулярных языков
Множество называется замкнутым

относительно некоторой операции, если в результате выполнения этой операции над

любыми элементами, принадлежащими данному множеству, получается новый элемент, принадлежащий тому же множеству.

множество целых чисел замкнуто
относительно операций сложения,
умножения и вычитания, но оно не замкнуто
относительно операции деления –
при делении двух целых чисел
не всегда получается целое число

Регулярные языки замкнуты относительно следующих операций:

пересечения;

объединения;

дополнения;

итерации;

конкатенации;

гомоморфизма (изменения имен символов и подстановки цепочек вместо символов).

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

Слайд 11Системное программное обеспечение

Способы задания регулярных языков
Контрольная работа № 4
Дана регулярная

леволинейная грамматика G, необходимо построить полностью определенный КА

Системное программное обеспечениеСпособы задания регулярных языковКонтрольная работа № 4Дана регулярная леволинейная грамматика G, необходимо построить полностью определенный

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика