220 likes | 449 Views
Типы грамматик. правила формального языка представлены в виде p : , Грамматику назовем грамматикой класса 0 , если никаких ограничений на правила не установлено (кроме одного: не является словом языка). Класс языков, порожденных этой грамматикой обозначим как L0.
E N D
Типы грамматик • правила формального языка представлены в видеp: , Грамматику назовем грамматикой класса 0, если никаких ограничений на правила не установлено (кроме одного: не является словом языка). Класс языков, порожденных этой грамматикой обозначим как L0
Типы грамматик • правила формального языка представлены в видеp: , Грамматику назовем грамматикой класса 1 или контекстной грамматикой, если • = 1A3 и =1`3, где A –нетерминал. • Класс языков, порожденных этой грамматикой, обозначим как L1 - языки класса 1 или контекстные языки
Типы грамматик • правила формального языка представлены в видеp: , Грамматику назовем грамматикой класса 2 или контекстно- свободной грамматикой (КС-грамматикой) , если = A, где A -нетерминал. Класс языков, порожденных этой грамматикой, обозначим как L2 - языки класса 2 или контекстно свободные языки
Типы грамматик • правила формального языка представлены в видеp: , Грамматику назовем грамматикой класса 3 или автоматной грамматикой, если = A, = aB либо = a, где a –символ основного алфавита, A, B –нетерминалы Класс языков, порожденных этой грамматикой обозначим как L3 - автоматные языки
Сопоставим каждому языку некоторое устройство с заданным множеством заключительных состояний и одним начальным состоянием. • Слово является словом языка, если оно, будучи поданным на вход устройства, переводит его из начального состояние в одно из заключительных. • Классификация Ноама Хомского • L0 ---Машина Тьюринга ;
L1 ---Машина Тьюринга с ограничением на память = ЛОА (линейно-ограниченный автомат); При обработке слова длины n необходима лента машины Тьюринга не больше, чем С· nТеорема Ландсвера: множество цепочек, представимых в ЛОА есть язык типа 1. Но не утверждается, что для любого языка типа 1 найдется машина Тьюринга ==ЛОА. Это уже утверждает теорема Курода. • L2 ---Машина Тьюринга с ограничением на доступ к памяти == автомат с магазинной памятью L2 --- конечный автомат.
автоматный язык связь между грамматикой автоматного языка и соответствующим ему автоматом. • Терминальными символами языка являются символы входного алфавита языка, т.е. V=Z. • За нетерминальные символы языка примем имена состояний автомата. • заключительных состояний может быть несколько, а аксиома в грамматике единственна. Введем пустой символ
Если определено несколько заключительных состояний, их можно свести к одному.
Состояния 6 и 4 заданы как заключительные
семантика языка • Как видно, слова abb, abab, abaaaab, accb, acccb, bc, bccc будут словами языка; • слова, начинающиеся с c, bb, ba, aa, bcb, словами языка не являются. • Правила грамматики можно определить следующим образом. для каждого заключительного состояния сопоставим каждой заходящей в него дуге пару <исходящее состояние> <имя переменной>. Так, в состояние 6 из состояния 5 приходит дуга, отмеченная переменной b. Этому будет соответствовать правило • p1: 6 ::=5b
Трём заходящим в вершину 4 дугам == правила • p2: 4::=1c • p3: 4::=5c • p4: 4::=2c • Затем для каждого состояния, кроме начального и тупикового, запишем правила для каждой заходящей в них дуги. Например, для состояния 5 это будут правила • p5: 5::= 1b • p6: 5::= 4c • p6: 5::= 5a
Состояния 6 и 4 заданы как заключительные
если дуга исходит из начальной вершины, имя её не указывается, т.е. правило приобретает вид как для вершин 1, 2, 3 • p7: 1::= a • p8: 2::= b • p9: 3::= c
Состояния 6 и 4 заданы как заключительные
приходим к следующему утверждению. • Теорема. В автоматных грамматиках правила всегда имеют вид A::= Bc или A::= c, где строчными символами обозначены терминальные, а прописными – нетерминальные символы.
Построить автомат, проверяющий правильность расстановки скобок в формулах. Правило имеет вид: • при построении формулы в любой момент число закрывающих скобок должно быть не больше числа скобок открывающих, • в конце формулы их число должно быть одинаковым. • Пусть глубина вложения скобок не больше четырёх.
Недетерминированный автомат • Пустой переход ε ; • Несколько дуг по одному выходу • Поведение по bbab
Лемма о накачке x (y P(x,y)& yT(x,y)) (y S(x,y) & y Q(y))) x ((y P(x,y)& yT(x,y))) V (y S(x,y) & y Q(y)))
Лемма о накачке • (nɜN)α≤Z: |α|≥n) (uvw≤Z) (α =uvw, | uv |≤ n& |v |≥1 (i≤ N) (uv!iw) ≤Z ) то язык автоматный. • (nɜN)α≤Z: |α|≥n) (uvw≤Z) (α =uvw, | uv |≤ n& |v |≥1 (i≤ N) (uv!iw) ≤Z ) то язык не автоматный