Формальная грамматика – это математическая система, определяющая язык посредством порождающих правил.
Определение Формальной грамматикой называется четверка вида:
,
где VN - конечное множество нетерминальных символов грамматики (обычно прописные латинские буквы);
VT - множество терминальных символов грамматики (обычно строчные латинские буквы, цифры, и т.п.), VT Ç VN =Æ;
Р – множество правил вывода грамматики, являющееся конечным подмножеством множества (VTÈ VN) + ´ (VTÈ VN) *; элемент (a, b) множества Р называется правилом вывода и записывается в виде a ® b (читается: «из цепочки a выводится цепочка b»);
S - начальный символ грамматики, S Î VN.
Для записи правил вывода с одинаковыми левыми частями вида используется сокращенная форма записи .
Пример Грамматика G 1 = ({0, 1}, { A, S }, P1, S), где множество Р состоит из правил вида: 1) S® 0 A 1;2)0 A® 00 A 1;3) A®e.
Определение Цепочка b Î (VTÈVN) * непосредственно выводима из цепочки в грамматике (обозначается: a Þ b), если и , где , и правило вывода содержится во множестве Р.
|
|
Определение Цепочка b Î (VTÈVN) * выводима из цепочки в грамматике (обозначается a Þ* b), если существует последовательность цепочек (n ³ 0) такая, что .
Пример В грамматике G 1 S Þ*000111, т.к. существует вывод .
Определение Языком, порожденным грамматикой , называется множество всех цепочек в алфавите VT, которые выводимы из начального символа грамматики S c помощью правил множества Р, т.е. множество .
Пример Для грамматики G 1 язык L (G 1) = {0 n 1 n | n ³0}.
Определение Цепочка , для которой существует вывод SÞ*a, называется сентенциальной формой или сентенцией в грамматике .
Определение Языком, порожденным грамматикой G называется множество терминальных сентенциальных форм грамматики.