Главная » Просмотр файлов » Лекции Русакова

Лекции Русакова (1021002), страница 23

Файл №1021002 Лекции Русакова (Лекции Русакова) 23 страницаЛекции Русакова (1021002) страница 232017-07-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 23)

Для рассматриваемого варианта граф имеетследующий вид:8.2. Формулировка задания.Для заданного варианта регулярного выражения написать регулярнуюграмматику.Представить детерминированный конечный автомат, соответствующийрегулярной грамматике.Написатьипроверитьработоспособностьсоответствующегосинтаксического анализатора.Краткие сведения из теорииКонечный автомат — это устройство для распознавания строк какоголибо языка. Конечный автомат — это пятерка М = (К, Σ, δ, S, F),215гдеK — конечное множество состояний;Σ — конечный входной алфавит;δ — множество переходов;S — начальное состояние (S ∈ К);F — множество последних состояний (F ⊆ К).По мере считывания каждой литеры строки автоматом контрольпередается от состояния к состоянию в соответствии с заданным множествомпереходов.Определение.Если после считывания последней литеры строки автомат будетнаходиться в одном из последних состояний, то о строке говорят, что онапринадлежит языку, принимаемому автоматом.

В противном случае строкане принадлежит языку, принимаемому автоматом.Пример.Рассмотрим автомат M0 = (К, Σ, δ, S, F),гдеК ={А, В}, S = {0, 1}, S = {A}, F = {A},δ = {δ (А, 0) = А, δ (А, 1) = В, δ (В, 0) = В, δ (В, 1) = А}.Эти переходы означают, что "при чтении 0 в состоянии А управлениепередается в состояние А и т. д.Причтениистроки0110010111управлениепоследовательнопередается в следующем порядке через состояния А, А, В, А, А, А, В, В, А,В, А.Так как А — есть последнее состояние, строка принимается конечнымавтоматом.Однако, при чтении строки 00111 автомат проходит через состояния А,А, А, В, А, В. В не является последним состоянием ⇒ строка 00111 непринимается, т.е. она не принадлежит языку, принимаемому этим автомат.216В связи с тем, что нули не влияют на состояние автомата, каждаяединица изменяет его состояние с А на В и с В на А, и начальное состояниеявляется тем же, что и последнее состояние.

Язык, принимаемый автоматом,состоит из тех строк, которые содержат четное число единиц.Переходы можно представить также с помощью таблицы исхематически:Определение.Автомат называется детерминированным, если в каждом элементетаблицы переходов содержится одно состояние. В недетерминированном конечном автомате это положение не выдерживается.Следовательно, автомат M 0 — детерминированный.8.04. Последовательность выполнения.Для выполнения лабораторной работы требуется умение писатьпрограммы на алгоритмическом языке, а также начальные знания попорождающим грамматикам.Таким образом, последовательность выполнения лабораторной работыследующая:1. Ознакомится с теорией регулярных грамматик.2.

В соответствии с заданным регулярным выражением написатьрегулярную грамматику.3. Записать соответствующий детерминированный конечный автомат суказанием таблицы переходов.4. Написать и отладить на компьютере синтаксический анализатор,распознающий выражения регулярного языка.2175. Привести контрольную распечатку.6. Оформить отчет.Работа считается выполненной только после оформления отчета,защиты и подписи преподавателя.8.05. Методический пример.Программа "grammatika", представляющая синтаксический анализатор,соответствующий детерминированному конечному автомату М, имеетследующий вид:program grammatika;uses crt;type perehod = recordold, term, new: char;end;var sost:array [1 ..

13] of perehod;stroka: string [255];sim, neterm: string [1];dlina, n, i: integer;ok: boolean;begin { блок определения таблицы переходов }sost[1].old :='S';sost[1].term :='2';sost[1].new := 'A';sost[2].old :='A';sost[2].term :='2';sost[2].new := 'B';sost[3].old :='B';sost[3].term :='1’;sost[3].new := 'C';sost[4].old := 'C';sost[4].term := 'b';sost[4].new := 'S';sost[5].old := 'S';sost[5].term := 'b';sost[5].new := 'D';sost[6].old :='D';sost[6].term :='2';sost[6].new :='E';sost[7].old :='E';sost[7] .term := '1';sost[7].new :='F';sost[8].old := 'F';sost[8].term := 'b';sost[8].new := 'D';sost[9].old := 'F';sost[9].term := '2';sost[9].new := 'K';218sost[10].old:='B';sost[10].term :='2';sost[10].new := 'K';sost[11].old := 'K';sost[11].term := '2';sost[11].new := 'L';sost[12].old := 'L';sost[12].term := '2';sost[12].new := 'M';sost[13].old := 'M'; sost[13].term := '2';sost[13].new := 'L';clrscr;{ блок основной программы }while TRUE do beginwriteln ('Введите строку символов’);readln (stroka);dlina := length (stroka);n:=0;ok :=' TRUE;neterm := 'S';while ok and (n < dlina) dobegin i := 0;n:=n+ 1sim := copy (stroka, n, 1);ok := FALSE;repeat i:=i+l;if ((sost [i].old = neterm) and(sost [i].term = sim)) thenbeginok := TRUE;neterm := sost[i].new;end;until ( ok or (i = 13));end;if ((neterm = 'S') or (neterm = 'B') or (neterm = 'F') or (neterm = 'L') and okthen writeln ('Данная строка принадлежит языку')219else writeln ('Данная строка не принадлежит языку'); readkey; end; end.8.06.

Контрольная распечатка.Введите строку символов 221b2Данная строка не принадлежит языкуВведите строку символов 221b221b221bДанная строка принадлежит языкуВведите строку символов b21Данная строка принадлежит языкуВведите строку символов b21b21Данная строка принадлежит языкуВведите строку символов 22222222Данная строка принадлежит языкуВедите строку символов 221b221bb21b21b212222Данная строка принадлежит языкуВведите строку символов 211bДанная строка не принадлежит языкуВведите строку символовДанная строка принадлежит языку2208.07. Замечания.1.

Синтаксический анализатор "grammatika" реализован исходя из видадетерминированного конечного автомата. Этот же самый анализатор можетиметь множество других программных реализаций, как-то:a) в качестве основы может быть взята грамматика;b) могут использоваться различные программные конструкции языковпрограммирования и другие причины.2. Синтаксический анализатор может быть реализован на любом,доступном студенту, алгоритмическом языке: PL, Си, TURBO Pascal,ассемблер, BASIC и других. Нельзя на PHP, PERL.В качестве иллюстрации приведем синтаксический анализатор,реализованный на языке ассемблера.Пусть задано регулярное выражение (cc) (ba10)* (0а)*, т. е. имеетсяязык:L75 = {(cc)m (balO)n (Oa)p : m, n, p > 0}.Один из вариантов синтаксического анализатора на языке ассемблераимеет следующий вид.TITLE (cc)* (bа10)*(0а)* code segmentassume cs:code, ds:codeorg l00h begin: JMP MAIN;-----------------------------------------------------clf egu OAh, ODhOKMSG db clf, 'O-K TESTED ! $'ERMSG db clf, 07h, 'Invalid simvol !', '$'WMSG db clf, 'Press the ENTER for exit!', '$';————————————————MAIN procS:call GCHR221cmp al, OdhjeOKcmp al,'c'jeTcmp al, 'b'jeVcmp al, '0'jeYjmpNO T:T:call GCHRcmp al, 'c'jeS jmpNOV:call GCHR cmp al, 'a' jeW jmpNOW:call GCHR cmp al, ' 1' jeX jmpNOX:call GCHRcmp al, '0'je Ujmp NOU:call GCHRcmp al, 'b'je Vcmp al, '0'je Ycmp al, Odhje OKjmp NOY:call GCHRcmp al, 'a'je Z222jmp NOZ:call GCHRcmp al,'0'je Ycmp al, Odhje OKNO: lea dx, ERMSGmov ah, 09hInt 21hcall WAIretOK: lea dx, OKMSGmov ah, 09hInt 21hcall WAIretMAIN endp;-----------------------------------------------------GCHR procmov ah, OlhInt21hRetGCHR endp;-------------------------------------------------------------------WAI proclea dx, WMSGmov ah, 09hInt 21hcall GCHR223cmp al, Odhjne WTret WAI endp;-----------------------------------------------------code endsend begin ; IT WORKS !синтаксического анализатора (на любом из реализованных накомпьютерной технике.8.08.

Отчет по практической работе.Отчет оформляется в соответствии с требованиями, предъявляемыми коформлению лабораторных работ в вузе, и должен содержать:1. Титульный лист.2. Наименование и цель работы.3. Исходные данные варианта задания.4. Алгоритм решения задачи (граф, таблица переходов).5. Листинг программы с исходными и выходными данными (листингпрограммы).6. Анализ результатов (контрольная распечатка).7. Выводы.Замечание: листы отчета должны быть скреплены.8.09.

Контрольные вопросы1. Какие грамматики называются регулярными?2. Чемотличаетсядетерминированныйконечныйнедетерминированного?3. Связь регулярных грамматик и конечных автоматов.4. Что такое регулярное выражение?224автоматот5. Алгоритм получения детерминированного конечного автомата изнедетерминированного.6. Какиепрограммныеособенностиотмеченыпринаписаниисинтаксического анализатора.7. Что такое состояние отказа в автомате, соответствующем анализатору?8. Что такое грамматика?8.10. Варианты заданий.Вариант задания определяется по последним двум цифрам зачётнойкнижки.1. (0110)* (1101)* (0111)*2. (abaa)* (baba)* (abbb)*3. (a120)* (a001)* (baa0)*4. (a1b1)* (11a1)* (b1aa)*5.

(21b)* (112b)* (b122)*6. (baba)* (abab)* (aaba)*7. (1011)* (1100)* (0001)*8. (a1b1)* (b12a)* (bb1)*9. (bba1)* (11aa)* (1ba1)*10. (b211)* (1abb)* (b11a)*11. (ab11)* (a11b)* (1aa1)*12. (bb12)* (2bb1)* (1b21)*13. (1000)* (1001)* (0001)*14. (1ab1)* (2b22)* (ab1b)*15. (ba21)* (1bba)* (2a11)*16. (ba22)* (11bb)* (2baa)*17. (0001)* (1011)* (1000)*18. (bb2a)* (a2bb)* (12ba)*19. (1b0a)* (1ab2)* (120a)*22520. (1ab0)* (11ab)* (11a0)*21.

(bba2)* (bb01)* (bb0a)*22. (bb00)* (a12b)* (baab)*23. (1100)* (1000)* (1011)*24. (1abb)* (1aa0)* (1bbb)*25. (2110)* (1210)* (1101)*26. (baba)* (cbab)* (abbb)*27. (1010)* (c010)* (1110)*28. (01ab)* (ba10)* (a10a)*29. (a010)* (0010)* (0110)*30. (ab11)* (11ab)* (a1a1)*31. (ccaa)* (0caa)* (a0ca)*32. (a010)* (0011)* (1001)*33. (1001)* (1aa0)* (0a11)*34. (10a1)* (0011)* (1100)*35. (a100)* (01a0)* (11aa)*36. (a010)* (01a0)* (aa11)*37. (01a0)* (a011)* (010a)*38. (10a0)* (1a01)* (110a)*39.

Характеристики

Тип файла
PDF-файл
Размер
2,13 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее