Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Классификация грамматик по Хомскому



Грамматика G называется грамматикой типа 3, регулярной, праволинейной или автоматнойграмматикой(А-грамматикой), если каждое правило из R имеет вид:

A ® xA (праволинейное правило) или

A ® x (заключительное правило), где A ÎVN, x ÎVT.

То есть каждое правило такой грамматики содержит единственный нетерминал в левой части, всегда один терминал в правой части, за которым может следовать один нетерминал. Для таких грамматик мы в дальнейшем будем пользоваться термином автоматная (А- ) грамматика.

Грамматика G называется грамматикой типа 2, бесконтекстной или контекстно - свободной(КС- ) грамматикой если ее правила имеют вид:

A ® a, где AÎVN, aÎ (VNÈ VT) *.

То есть в каждом правиле такой грамматики имеет место единственный нетерминал слева и произвольная цепочка из терминалов и нетерминалов справа, возможно и пустая. Замена A на a в сентециальной форме не зависит от того, в каком окружении, в каком контексте находится A.

Грамматика G называется грамматикой типа 1, контекстной, нормальных составляющих(НС-) или контекстно - зависимой(КЗ- ) грамматикой, если ее правила имеют вид:

jAy ® jay, где A ÎVN, j, y Î (VNÈ VT) *и aÎ (VNÈ VT)+, то есть в каждом правиле нетерминал A в контексте j и y заменяется на непустую цепочку a в том же контексте.

Грамматика G называется грамматикойтипа 0, грамматикой с фразовой структуройили рекурсивно перечислимой грамматикой, если ее правила имеют вид:

a®b, где на левую и правую части правил не наложено никаких ограничений. “

Нетрудно заметить, что грамматики типа i одновременно являются грамматиками типа i -1. Исключение составляют укорачивающиеКС (УКС) - грамматики, то есть грамматики, содержащие аннулирующие правила типа A® e, которые не являются КЗ-грамматиками.

Язык, определяемый грамматикой типа i называется языком типа i.

Из примеров 1.2 и 1.3 следует, что языки чисел и идентификаторов являются КС-языками (тип 2).

Тот факт, что язык определяется грамматикой типа i, еще не означает, что его нельзя породить менее мощной грамматикой типа i+1. Например, КС- грамматика с правилами S®AS ç e и A ® 0 ç 1 порождает язык {0,1}*, который конечно же можно определить А-грамматикой S ® 0S ç 1S ç 0 | 1.

Что можно сказать о выделенных классах грамматик и языков в целом? Идеальной с теоретической и практической точек зрения являются А-грамматики и языки. Но их класс слишком узок. Даже язык арифметических выражений не является A язы­ком. Тем не менее, теория автоматных языков повсеместно используется при построении трансляторов. Класс языков типа 0, напротив, очень широк и неразрешим в общем случае. Все остальные языки (тип 1 - тип 3), которые обобщенно называют контекстными, разрешимы. Для них существуют алгоритмы, определяющие принадлежность или непринадлежность цепочек языку за конечное число шагов.

Теорема 1.1.Любой контекстный язык разрешим.

Доказательство.Для любого контекстного языка L существует порождающая его грамматика G в удлиняющей форме, у которой для всех правил вывода a®bвыполняется условие ça ½<çb ÷. (Доказательство этого факта будет дано позже). В общем случае для контекстной грамматики без аннулирующих правил выполняется условие ça÷ £ çb÷. Возьмем анализируемую терминальную цепочку h. Длина исследуемой цепочки должна быть конечной. Тогда если h Î L,то существует вывод S = x1 Þ x2 Þ ... Þ x n-1 Þ x n = h, то есть вывод S Þn h, где çh÷ ³ n, так как каждый шаг вывода удлиняет цепочку не менее, чем на единицу. Число выводов с длиной не более n конечно. Поэтому достаточно проверить выводится ли h одним из них. Если h совпадает с одной из терминальных цепочек, выводимых по заданной грамматике G, не более чем за n шагов, то h Î L(G), если нет - h Ï L(G). ™

Неразрешимость языков типа 0 выводят их из рассмотрения в данном курсе,- нет смысла изучать языки, для которых невозможно определить принадлежность цепочки. Прочие же языки, как следует из теоремы 1.1, могут представлять практический интерес. В дальнейшем мы подробно рассмотрим теорию А - и КС - языков, нашедших широкое распространение при проектировании трансляторов.

 

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.