Компиляторы. Формальные языки и грамматики. Классификация Хомского.

 

По класс. Хомского выделяют 4 грамматики:

1.Тип 0 (ноль). G=(VT,NV,P,S) V=VNUVT

V называется грамматикой типа 0, если на ее правила вывода не оказывается никаких ограничений. Правила имеют вид: α->β где αЄV*, βЄV*.

2.Тип 1. Грамматику типа 1 можно определить как контекстно зависимую, либо как неукорачивающую. Грамматика называется контекстно зависимой, если каждое правило из P имеет вид: α1A α2-> α1βα2, где α1α2βЄV* AЄVN βЄB. Грамматика называется неукорачивающей, если каждое правило из P имеет вид: α1->β, где α,βЄV+ |β|>=| α|

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

3. Тип 2. Грамматику типа 2 можно определить как контекстно свободную либо как укорачивающую контекстно свободную. Грамматика называется контекстно свободной если любое правило из P имеет вид: A-> β AЄVN β ЄV+

Грамматика называется, укорачивающей контекстно свободной, если любое правило из P имеет вид: A-> β AЄVN β ЄV+

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

4. Тип 3. Грамматику типа 3, можно определить либо как праволинейную либо как леволенейную. Грамматика называется праволенейной, если любое правило из P имеет вид: A->γβ A->γ A,BЄVN, γЄVT

Грамматика G называется леволенейной, если каждое из правил имеет вид: A->γβ A->γ A,BЄVN, γЄVT.

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

Язык L(G) является языком типа R если его можно описать грамматикой типа К. Языки классифицируются в соответствии с типами грамматик, с помощью которых они созданы.

*Тип 0 – это языки с фразовой структурой (самые сложные языки, разговорные). *Тип 1 – контекстнозависимые языки. Время на распознавание предолжений языка экспоненциально зависит от длины исходной цепочки символов. Языки и грамматики типа 1 применяются в анализе и переводе текстов на естественных языках. Распознаватели, построенные на их основе, позволяют анализировать тексты с учетом контекстной зависимости в предложениях входного языка. *Тип 2 – контекстно свободные языки. КС языки лежат в основе синтаксических конструкций большинства современных языком программирования. На их основе функционируют некоторые сложные командные процессоры, допускающие управляющие команды цикла и условия. Эти обстоятельства определяют распространенность данного класса языков. В общем случае время на распознавание предложений языка, относящегося к типу 2 полиноминально зависит от исходной цепочки символов, но среди КС языков существует много классно языков, для которых эта зависимость линейна. *Тип 3 – регулярные языки. Время на распознавание предложений всегда линейно зависит от длины исходной цепочки символов. Данные языки лежат в основе простейших конструкций языков программирования, на их основе строятся мнемокоды команд. Для работы с регулярными языками можно использовать регулярные множества и выражения, а так же конечные автоматы.

 









Дата добавления: 2015-07-30; просмотров: 759;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.