1 / 35

Лекция 5

Лекция 5. Автоматные языки, синтаксические диаграммы, конечные автоматы -распознаватели языков. Автоматные языки. Конечные автоматы рассматриваются не как преобразователи информации, реагирующие на отдельные входные сигналы, а как распознаватели последовательностей входных сигналов.

hyman
Download Presentation

Лекция 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекция 5 Автоматные языки, синтаксические диаграммы, конечные автоматы -распознаватели языков

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

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

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

  5. Те языки, которые могут быть распознаны и оттранслированы конечными автоматами, называются автоматными языками.

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

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

  8. Языки Конечное множество элементов будем называть словарем, элементы словаря — символами, а последовательности символов словаря — цепочками или предложениями. Множество предложений назовем языком.

  9. Язык над словарем V будем обозначать Lv, или просто L, если V очевидно. Пусть V — словарь. Обозначим V* — множество всех возможных цепочек, составленных из символов словаря V. Если V в {а, Ь, с}, то V* = {ε, a, b, c, aa, ab, cba, ccaba, ...}, где ε— пустая цепочка, то есть цепочка, вовсе не содержащая символов. Хотя V конечно, V* — бесконечное счетное множество.

  10. Язык — это просто некоторое подмножество V*:LV*. Всего языков над словарем V (как под­множеств счетного множества V*) бесконечное число.

  11. Язык как подмножество цепочек над словарем V* Цепочка, принадлежащая Языку L V* L Цепочка, непринадлежащая Языку L

  12. 1. V1 ={а, Ь, с}; L1 = {abc, cc}. Очевидно, ccL1, cbcL1 2. V2 ={а, Ь, с}; L2=Ø, Очевидно, сс  L1. • 3. V3 = {а, Ь, с}; L3=V*. Очевидно, асс L3, так же, как и любая цепочка из этих символов. • 4 V4 =(а, Ь, с}; L4={anbcn| n ≥0}. Очевидно, aabcce  L4, cbaag  L4. 5.V5 - {a, b, c}; • L5 ={anbcm| n, m > 0}.Очевидно, aaaabcce  L5, cbaag  L5. • 6. V6 ={a, b, c}; L6={x | в цепочке х количества вхождений а, Ь и с равны}. Очевидно, ccbaba L6, ccb L6. • 7. V7 ={0,1}; L7 - множество двоичных чисел. Очевидно,100L7,011 L7.

  13. Автоматные грамматики и языки Язык — это в общем случае бесконечное множество, а бесконечные объекты даже задавать трудно: их невозможно задать простым перечислением элементов.

  14. Любой конечный механизм задания языка называется грамматикой

  15. Существует два типа грамматик • порождающие • распознающие

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

  17. Распознающая грамматика задает критерий принадлежности произвольной цепочки данному языку.

  18. Порождающие и распознающие грамматики

  19. Конечным автоматом-распознавателем называется пятерка объектов: А = <S, X, s0,, F>, где: S — конечное непустое множество (состояний); X — конечное непустое множество входных сигналов (входной алфавит); s0S — начальное состояние; SxX—>S — функция переходов; F S — множество заключительных (финальных) состояний.

  20. LAязык, допускаемый автоматом А= <S, X, s0,, F>. LA = {аX*I*(s0, а)F}

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

  22. Автоматы, распознающие L1

  23. Попытка построения автомата, распознающего L4 Язык L4 - {anbcn| n > 0} неавтоматный

  24. Автомат, распознающий L5 V5 = {а, Ь, с}; L5 = {anbcm| n, m > 0}. a b s q c

  25. Автомат, распознающий L7 V7={0,1}; L7 = множество четных двоичных чисел. Автомат с двумя состояниями распознает L7

  26. Автомат, распознающий L8 V8 = {+, -, 0,..., 9}; L8 = множество целых констант. Автомат с тремя состояниями распознает L8. Вместо конечного числа цифр на переходах здесь поставлена просто буква ц, обозначающая любую цифру.

  27. Автомат, распознающий L11 V11= {a};L11= {V* | длина  равна 2k, где k= 0,1,...,}. Автомат распознает L11.

  28. Существительное Глагол Существительное s0 s2 s3 s5 Прилагательное Существительное Существительное s4 s1 Прилагательное Прилагательное Прилагательное

  29. V13={большой, мощный, тяжелый, ..., кран, локомотив, контейнер, ..., ставит, ведет, кладет, везет, ,..}; L13 - русский язык. Русский язык, как и другие естественные языки, не автоматный.

  30. Связь синтаксических диаграмм и автоматных языков Синтаксические диаграммы — это направленные графы с одним входным ребром и одним выходным ребром и помеченными вершинами.

  31. Синтаксическая диаграмма и соответствующий ей конечный автомат

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

More Related