Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 387; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.