1. Алфавит, слова, операции над словами
Вид материала | Документы |
Содержание3. Абстрактные формальные системы 4. Формальные порождающие грамматики |
- Исполнительный кодекс Республики Молдова, 2184.07kb.
- Статьи 4 изложить в следующей редакции: "Статья Ответственность физических, юридических,, 41.3kb.
- Республика Молдова, 777.62kb.
- Федеральный закон, 404.04kb.
- Подготовка к операции по прорыву блокады проводилась в глубокой тайне, 18.04kb.
- Игра «Алфавит» Чтобы узнать тему нашего занятия вы должны расшифровать слова. (зашифрованные, 50.79kb.
- «День культуры и славянской письменности», 78.75kb.
- Выполнили: Фурманова Диана 3класс, 121.65kb.
- Работа со словами с непроверяемыми написаниями, 134.51kb.
- Календарно-тематический план учебная дисциплина: «Математика», 34.71kb.
3. Абстрактные формальные системы
Абстрактная формальная система – это
Алфавит А ( множество слов в этом алфавите – А*).
Разрешимое множество А1 А*, элементы множества А1 называют аксиомами.
Конечное множество вычислимых отношений Ri (1, …, n, ) на множестве A*, называемых правилами вывода. Говорят, что слово выводимо из слов 1, …, n по правилу Ri.
Аксиомы тоже могут быть заданы как унарные отношения, но это не всегда удобно.
Выводимость. Вывод формулы В из формул A1, A2, … , An - последовательность формул F1, F2, … , Fm = B, такая, что Fi (i=1,…m) либо аксиома, либо одна из формул A1, A2, … , An, либо непосредственно выводима из F1, F2, … , Fi-1 по одному из правил вывода. Если существует вывод формулы В из формул A1, A2, … , An, то В выводима из A1, A2, … , An . Множество формул, выводимых из аксиом, называется теоремами теории.
Теорема. Для любой формальной теории множество выводимых в ней слов перечислимо.
Док-во:
А** - множество всех конечных последовательностей 1, …, n, где i - слова в алфавите А. А** - перечислимо. Из-за разрешимости множества аксиом и вычислимости правил вывода по любой последовательности можно эффективно узнать, является ли она выводом в данной формальной системе (FS).
Если в процессе перечисления А** отбрасывать все последовательности, не являющиеся выводами, то получаем перечисление множества выводов последних слов выводов.
множество слов (формул), выводимых в произвольной формальной системе, перечислимо.
Примеры формальных систем: системы продукций Поста (канонические системы), системы подстановок, формальные грамматики, исчисления и т.д.
Каноническая система
A= {a1,a2,…, an} – алфавит констант,
X= {x1, x2,…,xm} – алфавит переменных,
M= {M1, M2, …, Mk} – множество аксиом, Mi(AX)*,
R = {R1, R2, …, Rl} – множество продукций, имеющих вид
1, 2,…, j, i, (AX)*, 1, 2,…,j называются посылками, - следствием.
Слова в (AX)* называются термами, слова в А* - просто словами.
Слово называется применением аксиомы , если получается из подстановкой слов вместо переменных.
Слово непосредственно выводимо из 1, …, n применением продукции R , если существует подстановка слов вместо переменных в продукцию R, которая посылки превратит в 1, …, n, а заключение – в .
Например, из acb , cabb применением продукции a x1 b, x1 b x2 b x2 (подстановка x1=ca, x2=b) непосредственно выводимо bb.
Выводимость – транзитивное и рефлексивное замыкание непосредственной выводимости.
Доказуемо (теорема формальной системы ) - выводимо из множества аксиом.
Например, <{I}, {x}, {I}, {xx I I}> позволяет построить множество нечетных чисел в унарном представлении.
Теорема. Для любого перечислимого множества М слов в алфавите А существует каконическая система над А, множество теорем которой совпадает с М.
(доказательство, с использованием МТ, приводится в [3])
4. Формальные порождающие грамматики
Порождающей грамматикой называется упорядоченная четверка G=< VT,VN, S, R>, где VT - алфавит терминальных или основных символов; VN — алфавит нетерминальных или вспомогательных символов(VTVN = ); S - начальный символ или аксиома, S VN, R - конечное множество правил или продукций вида , где (VTVN )* VN (VTVN )*, (VTVN )* - различные цепочки, а специальный символ, не принадлежащий VTVN и служащий для отделения левой части правила от правой . Такие символы, которые служат для описания языка, но не принадлежат самому языку, будем называть метасимволами. Говорят, что цепочка 1 непосредственно выводима из цепочки 0 (обозначается 01 ), если существуют такие 1, 2, , , что 01 2, 11 2 и существует правило ( R). Иными словами 01 , если в 0 найдется вхождение левой части какого-либо правила грамматики, а цепочка 1 получена заменой этого вхождения на правую часть правила. Существенно, что при определении отношения непосредственной выводимости обозначаемого ( разумеется, также метасимвол) мы не указываем, какое правило нужно применять и к какому именно вхождению (если их несколько). Здесь проявляются характерные черты исчислений, к классу которых относятся и порождающие грамматики. Исчисления представляют собой "разрешения" в отличие от алгоритмов, являющихся "предписаниями".
Говорят, что цепочка n выводима из цепочки 0 за один или несколько шагов или просто выводима (обозначается 0+n ), если существует последовательность цепочек 1, 2,…, n (n>0), такая, что ii+1, i{0,…n}. Эта последовательность называется выводом n из 0, а n – длиной вывода. Выводимость за n шагов иногда обозначается 0n n Наконец, если 0+n или 0=n , то пишут 0*n.
Нетрудно видеть, что + есть транзитивное, а * - транзитивно-рефлексивное замыкание отношения .
Цепочка называется сентенциальной формой, если она совпадает или выводима из начального символа грамматики, т.е. если S ,
Множество цепочек в основном алфавите грамматики, выводимых из начального символа, иначе множество сентенциальных форм, состоящих из терминальных символов, называется языком, порождаемым грамматикой G, и обозначается L(G).
L(G) = {x / S * x & xVT }.
Для любого перечислимого множества слов М существует грамматика G, такая, что М= L(G).
Говорят, что грамматики G1 и G2 эквивалентны, если L(G1 )=L(G2).
Например,
G1 = < {S}, {a}, S, { Sa, S a a S}>
L(G1)= {a 2n+1, n 0}
G2 = < {S, A}, {0, 1}, S, R>
R = {S 1 A, A 1 A, A 0 A, A 0 }
L(G2) – множество четных двоичных чисел, больших нуля.
G3 = < {S, A}, {0, 1}, S, R>
R = {S 1 A 0, A 1 A, A 0 A, A }
L(G2) = L(G3)
Для сокращения записи грамматик и выводов будем изображать нетерминальные символы прописными буквами латинского алфавита А , В , С , … , S терминальные -строчными буквами a, b, c,… и цифрами. Прописными буквами U, V, Z будем обозначать символы, которые могут быть как терминальными, так и нетерминальными; строчными буквами u, v, z c индексами или без них - цепочки, составленные из терминальных символов, а буквами … - из любых символов. Кроме того, для обозначения правил
1
2
………..
n
будем пользоваться записью 12…n .
Правила вида , где VT, называются заключительными.