Википедия

Формальная грамматика

Формальная грамматика или просто грамматика в теории формальных языков — способ описания формального языка, то есть выделения некоторого подмножества из множества всех слов некоторого конечного алфавита. Различают порождающие и распознающие (или аналитические) грамматики — первые задают правила, с помощью которых можно построить любое слово языка, а вторые позволяют по данному слову определить, входит ли оно в язык или нет.

Термины

  • Терминал (терминальный символ) — объект, непосредственно присутствующий в словах языка, соответствующего грамматике, и имеющий конкретное, неизменяемое значение (обобщение понятия «буквы»). В формальных языках, используемых на компьютере, в качестве терминалов обычно берут все или часть стандартных символов ASCII — латинские буквы, цифры и спецсимволы.
  • Нетерминал (нетерминальный символ) — объект, обозначающий какую-либо сущность языка (например: формула, арифметическое выражение, команда) и не имеющий конкретного символьного значения.

Порождающие грамматики

Словами языка, заданного грамматикой, являются все последовательности терминалов, выводимые (порождаемые) из начального нетерминала по правилам вывода.

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

Итак, грамматика определяется следующими характеристиками:

  • image — набор (алфавит) терминальных символов
  • N — набор (алфавит) нетерминальных символов
  • P — набор правил вида: «левая часть» image «правая часть», где:
    • «левая часть» — непустая последовательность терминалов и нетерминалов, содержащая хотя бы один нетерминал
    • «правая часть» — любая последовательность терминалов и нетерминалов
  • S — стартовый (или начальный) символ грамматики из набора нетерминалов.

Вывод

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

Существование вывода для некоторого слова является критерием его принадлежности к языку, определяемому данной грамматикой.

Типы грамматик

По иерархии Хомского, грамматики делятся на 4 типа, каждый последующий является более ограниченным подмножеством предыдущего (но и легче поддающимся анализу):

  • тип 0. неограниченные грамматики — возможны любые правила
  • тип 1. контекстно-зависимые грамматики — левая часть может содержать один нетерминал, окруженный «контекстом» (последовательности символов, в том же виде присутствующие в правой части); сам нетерминал заменяется непустой последовательностью символов в правой части.
  • тип 2. контекстно-свободные грамматики — левая часть состоит из одного нетерминала.
  • тип 3. регулярные грамматики — более простые, эквивалентны конечным автоматам.

Кроме того, выделяют:

  • Неукорачивающиеся грамматики. Каждое правило такой грамматики имеет вид image, где image. Длина правой части правила не меньше длины левой.
  • Линейные грамматики. Каждое правило такой грамматики имеет вид image, или image, то есть в правой части правила может содержаться не более одного вхождения нетерминала.

Применение

Пример — арифметические выражения

Рассмотрим простой язык, определяющий ограниченное подмножество арифметических формул, состоящих из натуральных чисел, скобок и знаков арифметических действий. Стоит заметить, что здесь в каждом правиле с левой стороны от стрелки image стоит только один нетерминальный символ. Такие грамматики называются контекстно-свободными.

Терминальный алфавит:

image = {'0','1','2','3','4','5','6','7','8','9','+','-','*','/','(',')'} 

Нетерминальный алфавит:

 { ФОРМУЛА, ЗНАК, ЧИСЛО, ЦИФРА } 

Правила:

1. ФОРМУЛА image ФОРМУЛА ЗНАК ФОРМУЛА (формула есть две формулы, соединенные знаком) 2. ФОРМУЛА image ЧИСЛО (формула есть число) 3. ФОРМУЛА image ( ФОРМУЛА ) (формула есть формула в скобках) 4. ЗНАК image + | - | * | /  (знак есть плюс или минус, или умножить, или разделить) 5. ЧИСЛО image ЦИФРА (число есть цифра) 6. ЧИСЛО image ЧИСЛО ЦИФРА (число есть число и цифра) 7. ЦИФРА image 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 (цифра есть 0 или 1, или ... 9 ) 

Начальный нетерминал:

ФОРМУЛА 

Вывод:

Выведем формулу (12+5) с помощью перечисленных правил вывода. Для наглядности, стороны каждой замены показаны попарно, в каждой паре заменяемая часть подчеркнута.

ФОРМУЛА image (ФОРМУЛА)
(ФОРМУЛА) image (ФОРМУЛА ЗНАК ФОРМУЛА)
(ФОРМУЛА ЗНАК ФОРМУЛА) image (ФОРМУЛА + ФОРМУЛА)
(ФОРМУЛА + ФОРМУЛА) image (ФОРМУЛА + ЧИСЛО)
(ФОРМУЛА + ЧИСЛО) image (ФОРМУЛА + ЦИФРА)
(ФОРМУЛА + ЦИФРА) image (ФОРМУЛА + 5)
(ФОРМУЛА + 5) image (ЧИСЛО + 5)
(ЧИСЛО + 5) image (ЧИСЛО ЦИФРА + 5)
(ЧИСЛО ЦИФРА + 5) image (ЦИФРА ЦИФРА + 5)
(ЦИФРА ЦИФРА + 5) image (1 ЦИФРА + 5)
(1 ЦИФРА + 5) image (1 2 + 5)


Аналитические грамматики

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

См. также

  • JFLAP — программа-симулятор автоматов, машины Тьюринга, грамматик
  • Синтаксический анализ
  • Неоднозначная грамматика
  • Задача о наименьшей грамматике
  • Грамматика с фразовой структурой

Примечания

Литература

  • Белоусов А. И., Ткачев С. Б. Дискретная математика. — М.: МГТУ, 2006. — 743 с. — ISBN 5-7038-2886-4.
  • Гладкий А. В. Формальные грамматики и языки. — М.: Наука, 1973.
  • Касьянов В. Н. Лекции по теории формальных языков, автоматов и сложности вычислений. — Новосибирск: НГУ, 1995. — 112 с.
  • Хомский Н., Миллер Дж. Введение в формальный анализ естественных языков // Кибернетический сборник / Под ред. А.А.Ляпунова и О.Б.Лупанова. — М.: Мир, 1965.
  • Гросс М., Лантен А. Теория формальных грамматик. — М.: Мир, 1971. — 296 с.

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Формальная грамматика, Что такое Формальная грамматика? Что означает Формальная грамматика?

Formalnaya grammatika ili prosto grammatika v teorii formalnyh yazykov sposob opisaniya formalnogo yazyka to est vydeleniya nekotorogo podmnozhestva iz mnozhestva vseh slov nekotorogo konechnogo alfavita Razlichayut porozhdayushie i raspoznayushie ili analiticheskie grammatiki pervye zadayut pravila s pomoshyu kotoryh mozhno postroit lyuboe slovo yazyka a vtorye pozvolyayut po dannomu slovu opredelit vhodit li ono v yazyk ili net TerminyTerminal terminalnyj simvol obekt neposredstvenno prisutstvuyushij v slovah yazyka sootvetstvuyushego grammatike i imeyushij konkretnoe neizmenyaemoe znachenie obobshenie ponyatiya bukvy V formalnyh yazykah ispolzuemyh na kompyutere v kachestve terminalov obychno berut vse ili chast standartnyh simvolov ASCII latinskie bukvy cifry i specsimvoly Neterminal neterminalnyj simvol obekt oboznachayushij kakuyu libo sushnost yazyka naprimer formula arifmeticheskoe vyrazhenie komanda i ne imeyushij konkretnogo simvolnogo znacheniya Porozhdayushie grammatikiSlovami yazyka zadannogo grammatikoj yavlyayutsya vse posledovatelnosti terminalov vyvodimye porozhdaemye iz nachalnogo neterminala po pravilam vyvoda Chtoby zadat grammatiku trebuetsya zadat alfavity terminalov i neterminalov nabor pravil vyvoda a takzhe vydelit v mnozhestve neterminalov nachalnyj Itak grammatika opredelyaetsya sleduyushimi harakteristikami S displaystyle Sigma nabor alfavit terminalnyh simvolov N nabor alfavit neterminalnyh simvolov P nabor pravil vida levaya chast displaystyle rightarrow pravaya chast gde levaya chast nepustaya posledovatelnost terminalov i neterminalov soderzhashaya hotya by odin neterminal pravaya chast lyubaya posledovatelnost terminalov i neterminalov S startovyj ili nachalnyj simvol grammatiki iz nabora neterminalov Vyvod Vyvodom nazyvaetsya posledovatelnost strok sostoyashih iz terminalov i neterminalov gde pervoj idet stroka sostoyashaya iz odnogo startovogo neterminala a kazhdaya posleduyushaya stroka poluchena iz predydushej putyom zameny nekotoroj podstroki po odnomu lyubomu iz pravil Konechnoj strokoj yavlyaetsya stroka polnostyu sostoyashaya iz terminalov i sledovatelno yavlyayushayasya slovom yazyka Sushestvovanie vyvoda dlya nekotorogo slova yavlyaetsya kriteriem ego prinadlezhnosti k yazyku opredelyaemomu dannoj grammatikoj Tipy grammatik Po ierarhii Homskogo grammatiki delyatsya na 4 tipa kazhdyj posleduyushij yavlyaetsya bolee ogranichennym podmnozhestvom predydushego no i legche poddayushimsya analizu tip 0 neogranichennye grammatiki vozmozhny lyubye pravila tip 1 kontekstno zavisimye grammatiki levaya chast mozhet soderzhat odin neterminal okruzhennyj kontekstom posledovatelnosti simvolov v tom zhe vide prisutstvuyushie v pravoj chasti sam neterminal zamenyaetsya nepustoj posledovatelnostyu simvolov v pravoj chasti tip 2 kontekstno svobodnye grammatiki levaya chast sostoit iz odnogo neterminala tip 3 regulyarnye grammatiki bolee prostye ekvivalentny konechnym avtomatam Krome togo vydelyayut Neukorachivayushiesya grammatiki Kazhdoe pravilo takoj grammatiki imeet vid a b displaystyle alpha rightarrow beta gde a b displaystyle alpha leqslant beta Dlina pravoj chasti pravila ne menshe dliny levoj Linejnye grammatiki Kazhdoe pravilo takoj grammatiki imeet vid A uBv displaystyle A rightarrow uBv ili A u displaystyle A rightarrow u to est v pravoj chasti pravila mozhet soderzhatsya ne bolee odnogo vhozhdeniya neterminala Primenenie Kontekstno svobodnye grammatiki shiroko primenyayutsya dlya opredeleniya grammaticheskoj struktury v grammaticheskom analize Regulyarnye grammatiki v vide regulyarnyh vyrazhenij shiroko primenyayutsya kak shablony dlya tekstovogo poiska razbivki i podstanovki v tom chisle v leksicheskom analize Primer arifmeticheskie vyrazheniya Rassmotrim prostoj yazyk opredelyayushij ogranichennoe podmnozhestvo arifmeticheskih formul sostoyashih iz naturalnyh chisel skobok i znakov arifmeticheskih dejstvij Stoit zametit chto zdes v kazhdom pravile s levoj storony ot strelki displaystyle rightarrow stoit tolko odin neterminalnyj simvol Takie grammatiki nazyvayutsya kontekstno svobodnymi Terminalnyj alfavit S displaystyle Sigma 0 1 2 3 4 5 6 7 8 9 Neterminalnyj alfavit FORMULA ZNAK ChISLO CIFRA Pravila 1 FORMULA displaystyle to FORMULA ZNAK FORMULA formula est dve formuly soedinennye znakom 2 FORMULA displaystyle to ChISLO formula est chislo 3 FORMULA displaystyle to FORMULA formula est formula v skobkah 4 ZNAK displaystyle to znak est plyus ili minus ili umnozhit ili razdelit 5 ChISLO displaystyle to CIFRA chislo est cifra 6 ChISLO displaystyle to ChISLO CIFRA chislo est chislo i cifra 7 CIFRA displaystyle to 0 1 2 3 4 5 6 7 8 9 cifra est 0 ili 1 ili 9 Nachalnyj neterminal FORMULA Vyvod Vyvedem formulu 12 5 s pomoshyu perechislennyh pravil vyvoda Dlya naglyadnosti storony kazhdoj zameny pokazany poparno v kazhdoj pare zamenyaemaya chast podcherknuta FORMULA 3 displaystyle stackrel 3 to FORMULA FORMULA 1 displaystyle stackrel 1 to FORMULA ZNAK FORMULA FORMULA ZNAK FORMULA 4 displaystyle stackrel 4 to FORMULA FORMULA FORMULA FORMULA 2 displaystyle stackrel 2 to FORMULA ChISLO FORMULA ChISLO 5 displaystyle stackrel 5 to FORMULA CIFRA FORMULA CIFRA 7 displaystyle stackrel 7 to FORMULA 5 FORMULA 5 2 displaystyle stackrel 2 to ChISLO 5 ChISLO 5 6 displaystyle stackrel 6 to ChISLO CIFRA 5 ChISLO CIFRA 5 5 displaystyle stackrel 5 to CIFRA CIFRA 5 CIFRA CIFRA 5 7 displaystyle stackrel 7 to 1 CIFRA 5 1 CIFRA 5 7 displaystyle stackrel 7 to 1 2 5 Analiticheskie grammatikiPorozhdayushie grammatiki ne edinstvennyj vid grammatik odnako naibolee rasprostranennyj v prilozheniyah k programmirovaniyu V otlichie ot porozhdayushih grammatik analiticheskaya raspoznayushaya grammatika zadaet algoritm pozvolyayushij opredelit prinadlezhit li dannoe slovo yazyku Naprimer lyuboj regulyarnyj yazyk mozhet byt raspoznan pri pomoshi grammatiki zadavaemoj konechnym avtomatom a lyubaya kontekstno svobodnaya grammatika s pomoshyu avtomata so stekovoj pamyatyu Esli slovo prinadlezhit yazyku to takoj avtomat stroit ego vyvod v yavnom vide chto pozvolyaet analizirovat semantiku etogo slova Sm takzheJFLAP programma simulyator avtomatov mashiny Tyuringa grammatik Sintaksicheskij analiz Neodnoznachnaya grammatika Zadacha o naimenshej grammatike Grammatika s frazovoj strukturojImeetsya vikiuchebnik po teme Formalnaya grammatika PrimechaniyaDiskretnaya matematika 2006 s 486 Diskretnaya matematika 2006 s 487 LiteraturaBelousov A I Tkachev S B Diskretnaya matematika M MGTU 2006 743 s ISBN 5 7038 2886 4 Gladkij A V Formalnye grammatiki i yazyki M Nauka 1973 Kasyanov V N Lekcii po teorii formalnyh yazykov avtomatov i slozhnosti vychislenij Novosibirsk NGU 1995 112 s Homskij N Miller Dzh Vvedenie v formalnyj analiz estestvennyh yazykov Kiberneticheskij sbornik Pod red A A Lyapunova i O B Lupanova M Mir 1965 Gross M Lanten A Teoriya formalnyh grammatik M Mir 1971 296 s

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто