КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Общий вид цепочек А-языков
ЯЗЫКОВ СВОЙСТВА АВТОМАТНЫХ И КОНТЕКСТНО-СВОБОДНЫХ Упражнения.
4.1. В грамматике S ® abAcDkY A ® nmDky ½ vaxYe ½ jab D ® ghYo ½ kh Y ® f ½ d устраните правила A ® nmDky ½ vaxYe ½ jab D ® ghYo ½ kh и проведите декомпозицию относительно Y. Подсчитайте количество правил результирующей грамматики до проведения преобразований. 4.2. Исключите тупики из следующих грамматик: (а) S ® aBcD ½ kLMp L ® f M B ® cLpDq ½ pDc ½ f M ® Lk ½ pMLc D ® f Dr ½ f pq K ® r F F ® abc ½ ab (б) S ® AB ½ BC ½ kL A ® aA ½ bL ½ c B ® BS ½ AL L ® cB ½ j ½ p C ® QS ½ dC Q ® qQ ½ aC M ® xN ½ yM ½ zS ½ h N ® xC ½ v ½ wM (в) S ® BA ½ CB ½ AL C ® QS ½ dC A ® aA ½ bB ½ cC Q ® qQ ½ aC B ® BS ½ AL ½ g M ® xN ½ yM ½ zS ½ h L ® cB ½ jC ½ p N ® xC ½ v ½ wM
4.3. Устраните аннулирующие правила из следующих грамматик: (а) S ® abCDe ½ Kp C ® dSde ½ e D ® dD ½ DD ½ e ½ f K ½ e K ® e ½ mcf (б) S ® aSbS ½ bSaS ½ e (в) S ® ABC A ® BB ½ e B ® CC ½ a C ® AA ½ b
4.4. Устраните цепные правила из грамматики E ® E+T ½ T T ® T * F ½ F F ® (E) ½ a
4.5. Найдите приведенную грамматику, эквивалентную грамматике S ® A ½ B A ® C ½ D B ® D ½ E C ® S ½ a ½ e D ® S ½ b E ® S ½ c ½ e
4.6. Устраните левую рекурсию в следующих грамматиках: (а) E ® E+T ½ E-T ½ T ½ -T T ® T * F ½ T / F ½ F F ® (E) ½ a (б) S ® AB A ® Aa ½ Ab ½ d ½ e B ® qK ½ rB ½ Bf ½ Bg K ® vS ½ w
В этом разделе мы исследуем некоторые из основных свойств А- и КС-языков. Упомянутые здесь результаты образуют малую долю огромного богатства знаний об этих языках. Часть свойств этих языков уже были рассмотрены в разделах 1-4. Ниже мы обсудим общий вид цепочек этих языков, неоднозначность КС-грамматик и КС-языков, некоторые операции, относительно которых замкнуты классы А- и КС-языков.
Мы хотим получить характеристику цепочек А-языков, которая будет полезна для доказательства того, что некоторые языки не являются автоматными. Следующую теорему об общем виде цепочек А-языков называют теоремой о “разрастании ”, потому что она в сущности говорит о том, что если дан А-язык и достаточно длинная цепочка в нем, то в этой цепочке можно найти непустую подцепочку, которую можно повторить сколько угодно раз (т.е. она “разрастается”), и все полученные таким образом “новые” цепочки будут принадлежать тому же А-языку. С помощью этой теоремы часто приводят к противоречию предположение о том, что некоторый язык является автоматным.
Теорема 5.1. Пусть L - А-язык. Существует такая константа p, что, если y Î L и ½y½³ p, то цепочку y можно записать в виде abg, где 0 <½b½£ p и ab ig Î L, для всех i ³ 0.
Доказательство. Если L - конечный язык, то положим константу p больше длины самой длинной цепочки языка L, тогда ни одна из цепочек языка не удовлетворяет условиям теоремы и она верна. В противном случае, пусть M = (Q,S, d, q0, F) - конечный автомат с n состояниями и L(M) = L. Пусть p = n. Если y Î L и ½ y ½ ³ n, рассмотрим последовательность конфигураций, которую проходит автомат M, допуская цепочку y. Так как в этой последовательности, по крайней мере, n+1 конфигурация, то найдутся две конфигурации с одинаковыми состояниями. Поэтому, должна быть такая последовательность тактов, что (q 0, abg) ú¾* (q 1, bg) ú¾ k (q 1, g) ú¾* (q 2, e), для некоторого q 1 и 0 < k £ n. Отсюда 0 <½b½£ n. Но тогда, для любого i > 0 автомат может проделать следующую последовательность тактов: (q 0, ab i g) ú¾* (q 1, b i g) (q 1, b i g) ú¾ + (q 1, b i-1 g) .............. (q 1, b 2 g) ú¾ + (q 1, bg) (q 1, bg) ú¾ + (q 1, g) (q 1, g) ú¾* (q 2, e). Для случая i = 0 все еще очевиднее: (q 0, ag) ú¾* (q 1, g) ú¾* (q 2, e) Так как abg Î L, то и ab i g Î L, для всех i ³ 0.
Эта теорема, обычно, используется для доказательства того, что некоторые выбранные цепочки не являются цепочками А-языка и, следовательно, не могут быть определены А-грамматиками.
Следствие 5.1. Язык L, состоящий из цепочек x n y n не является автоматным языком. Допустим, что он автоматный. Тогда, для достаточно большого n цепочка x n y n может быть представлена в виде abg, причем b ¹ e и ab i g Î L, для всех i ³ 0. Если b = x...x или b = y...y, то ag = ab 0 g Ï L, так как количество символов x и y в цепочке ag различно. Если b = x...xy...y, то abbg = ab 2g Ï L, так как в цепочке abbg символы x и y будут перемешаны. Полученное противоречие, доказывает, что L - не является А-языком.
Следствие 5.2. Язык арифметических выражений не является А-языком, так как он может содержать произвольное количество вложенных скобок, причем количество открывающих скобок совпадает с количеством закрывающих. Аналогично, не является А-языком любой язык, содержащий вложенные конструкции, типа фигурных скобок в языке C, begin - end, repeat - until и т.п. Каждая конечная А-грамматика, порождающая подобные конструкции, будет выводить и цепочки с неравным количеством открывающих и закрывающих скобок. Тем не менее, анализировать подобные цепочки можно и с помощью автоматного подхода. При этом, в синтаксисе языка допускается произвольное количество открывающих и закрывающих скобок, а контроль их парности возлагается на семантические подпрограммы.
Дата добавления: 2015-06-27; Просмотров: 428; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |