Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Определение формальной грамматики



 

Формальная грамматика – это математическая система, определяющая язык посредством порождающих правил.

Определение Формальной грамматикой называется четверка вида:

 

,

 

где VN - конечное множество нетерминальных символов грамматики (обычно прописные латинские буквы);

VT - множество терминальных символов грамматики (обычно строчные латинские буквы, цифры, и т.п.), VT Ç VN;

Р – множество правил вывода грамматики, являющееся конечным подмножеством множества (VTÈ VN)+ ´ (VTÈ VN)*; элемент (a, b) множества Р называется правилом вывода и записывается в виде a®b (читается: «из цепочки a выводится цепочка b»);

S - начальный символ грамматики, S Î VN.

Для записи правил вывода с одинаковыми левыми частями вида используется сокращенная форма записи .

Пример Грамматика G1=({0, 1}, {A, S}, P1, S), где множество Р состоит из правил вида: 1) 0A1; 2)000A1; 3) A®e.

Определение Цепочка b Î (VTÈ VN)* непосредственно выводима из цепочки в грамматике (обозначается: aÞ b), если и , где , и правило вывода содержится во множестве Р.

Определение Цепочка b Î (VTÈ VN)* выводима из цепочки в грамматике (обозначается aÞ *b), если существует последовательность цепочек (n³ 0) такая, что .

Пример В грамматике G1 SÞ *000111, т.к. существует вывод .

Определение Языком, порожденным грамматикой , называется множество всех цепочек в алфавите VT, которые выводимы из начального символа грамматики S c помощью правил множества Р, т.е. множество .

Пример Для грамматики G1 язык L(G1)={0n1n | n³ 0}.

Определение Цепочка , для которой существует вывод SÞ *a, называется сентенциальной формой или сентенцией в грамматике .

Определение Языком, порожденным грамматикой G называется множество терминальных сентенциальных форм грамматики.

 

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

Классификация грамматик по Хомскому осуществляется по структуре их правил вывода. Выделяется четыре типа грамматик.

Тип 0. Грамматика называется грамматикой типа 0, если на ее правила вывода не наложено никаких ограничений, кроме тех, которые указаны в определении грамматики.

Тип 1. Грамматика называется контекстно-зависимой грамматикой (КЗ-грамматикой), если каждое правило вывода из множества Р имеет вид a®b, где a Î (VT È VN)+, b Î (VT È VN)* и |a| £ |b|.

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

Соотношение типов грамматик и языков представлено на рисунке 1.1.

 
 

 


Р – регулярная грамматика;

КС – контекстно-свободная грамматика;

КЗ – контекстно-зависимая грамматика;

Тип 0 – грамматика типа 0.

 

Рисунок 1.1 – Соотношение типов формальных языков и грамматик

 

Тип 3. Грамматика называется регулярной грамматикой (Р-грамматикой) выровненной вправо, если ее правила вывода имеют вид , где .

Грамматика называется регулярной грамматикой (Р-грамматикой) выровненной влево, если ее правила вывода имеют вид , где .

Определение Язык L(G) называется языком типа k, если его можно описать грамматикой типа k, где k – максимально возможный номер типа грамматики.

Пример Примеры различных типов формальных языков и грамматик по классификации Хомского. Терминалы будем обозначать строчными символами, нетерминалы – прописными буквами, начальный символ грамматики – S.

а) Язык типа 0 L(G)= определяется грамматикой с правилами вывода:

1) S ® aaCFD; 2) AD ® D;

3) F ® AFB | AB; 4) Cb ® bC;

5) AB ® bBA; 6) CB ® C;

7) Ab ® bA; 8) bCD ® e.

 

б) Контекстно-зависимый язык L(G)={anbncn | n³ 1} определяется грамматикой с правилами вывода:

1) S ® aSBC | abc ; 2) bC ® bc;

3) CB ® BC; 4) cC ® cc;

5) BB ® bb.

 

в) Контекстно-свободный язык L(G)={(ab)n(cb)n | n> 0 } определяется грамматикой с правилами вывода:

1) S ® aQb | accb;

2) Q ® cSc.

 

г) Регулярный язык L(G)={w^ | wÎ {a, b}+, где нет двух рядом стоящих а} определяется грамматикой с правилами вывода:

1) S ® A^ | B^;

2) A ® a | Ba;

3) B ® b | Bb | Ab.

 

Эквивалентность грамматик

 

Определение Грамматики G1 и G2 называются эквивалентными, если они определяют один и тот же язык, т.е. .

Определение Грамматики G1 и G2 называются почти эквивалентными, если заданные ими языки различаются не более чем на пустую цепочку символов т.е. .

Пример Для грамматики G1 эквивалентной будет грамматика G2 = ({0, 1}, {S}, P2, S), где множество правил вывода P2 содержит правила вида S ® 0S1| e.

Почти эквивалентной для грамматики G1 будет грамматика G3 = ({0, 1}, {S}, P3, S), где множество правил вывода P3 содержит правила вида S ® 0S1|01.

 

Формы Бэкуса - Наура

Цепочки языка могут содержать метасимволы, имеющие особое назначение. Метаязык, предложенный Бэкусом и Науром (БНФ) использует следующие обозначения:

- символ «:: =» отделяет левую часть правила от правой (читается: «определяется как»);

- нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки «< » и «> »;

- терминалы - это символы, используемые в описываемом языке;

- правило может определять порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты «|» (читается: «или».

Для повышения удобства и компактности описаний, в расширенных БНФ вводятся следующие дополнительные конструкции (метасимволы):

- квадратные скобки «[» и «]» означают, что заключенная в них синтаксическая конструкция может отсутствовать;

- фигурные скобки «{» и «}» означают повторение заключенной в них синтаксической конструкции ноль или более раз;

- сочетание фигурных скобок и косой черты «{/» и «/}» используется для обозначения повторения один и более раз;

- круглые скобки «(» и «)» используются для ограничения альтернативных конструкций;

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

Пример Правила, определяющие понятие «идентификатор» некоторого языка программирования, будут выглядеть следующим образом:

 

< буква> :: = a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w |

x | y | z

< цифра> :: = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

< идентификатор> :: = < буква> { (< буква> | < цифра> ) }

 

Диаграммы Вирта

 

В метаязыке диаграмм Вирта используются графические примитивы, представленные на рисунке 1.4.1.

При построении диаграмм учитывают следующие правила:

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

- каждому правилу соответствует своя графическая диаграмма, на которой терминалы и нетерминалы соединяются посредством дуг;

- альтернативы в правилах задаются ветвлением дуг, а итерации - их слиянием;

- должна быть одна входная дуга (располагается обычно слева или сверху), задающая начало правила и помеченная именем определяемого нетерминала, и одна выходная, задающая его конец (обычно располагается справа и снизу);

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

 
 

 


Пример 1.4.1. Правила, определяющие понятие «идентификатор» некоторого языка программирования, показаны на рисунке 1.3.

Цифра

 

Буква

       
   
 
 

 


Идентификатор

 

 

Рисунок 1.3 – Диаграмма Вирта понятия «идентификатор»

 

 


Поделиться:



Популярное:

  1. LANGUAGE IN USE - Повторение грамматики: система времен английских глаголов в активном залоге
  2. PEST-анализ макросреды предприятия. Матрица профиля среды, взвешенная оценка, определение весовых коэффициентов. Матрицы возможностей и матрицы угроз.
  3. Алгоритм «сдвиг-свертка» для грамматики операторного предшествования
  4. Анализ баланса реактивной мощности на границе раздела энергоснабжающей организации и потребителя, и при необходимости определение мощности батарей конденсаторов для сети напряжением выше 1 кВ
  5. Блок 1. Понятие о морфологии. Имена. Имя существительное: определение, грамматические признаки, правописание
  6. В случае непринятия судом признания иска ответчиком суд выносит об этом определение и продолжает рассмотрение дела по существу.
  7. Вопрос 1. Какое определение Маркетингу дал Филип Котлер и на чем базируется теория маркетинга?
  8. Вопрос 1. Определение триггера. Классификация, назначение, таблицы переходов.
  9. Вопрос 34 Определение радиационно-опасного объекта. Основные радиационные источники. Классификации аварий на РОО
  10. Вопрос № 39 Представительные органы в системе местного самоуправления, порядок их формирования и определение численности.
  11. Глава 1. Определение состояния здоровья собаки.
  12. Глава 3. День третий. Определение своих границ


Последнее изменение этой страницы: 2016-04-11; Просмотров: 1364; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.034 с.)
Главная | Случайная страница | Обратная связь