Грамматика с фразовой структурой
Материал из Википедии — свободной энциклопедии
Содержание |
[править] Языки и грамматики. Основные понятия.
Назначение языков и грамматик заключается в:
- Разработке алгоритмичных языков
- Разработке специальных языков для описания явлений
- Применяется в компьютерной криптографии
Буква(символ) - простой неделимый знак.
Алфавит - множество букв (символов) A={a, b, c}. Если есть два алфавита A и B(подмножество множества A), говорят, что алфавит B является подафавитом A, а A в свою очередь - надалфавитом.
Конкатенация - операция слияния символов в языке. Эта операция, по отношению к алгебраическим структурам, представляет собой полугруппу или монойд.
Слово(строка) - упорядоченная совокупность букв в алфавите. Множество всех строк(включая пустую), которые могут быть построены из символов алфавита A, называется замыканием A, и обозначается A*. Положительное замыкание A(обозначается A+) - множество A*\{e}, то есть множество всех строк, которые могут быть построены из символов алфавита A, за исключением пустой строки.
Язык - в общем случае, совокупность слов или предложений, сформированных набором правил и ограничений.
[править] Подъязык (расширение) языка
Любой язык в общем случае можно трактовать в 3-х срезах, как:
- Совокупность букв, слов (предложений) вместе с наложенными на них ограничивающими правилами – синтаксическое рассмотрение (синтаксис).
- Интерпретация предложений на предмет «понимания» предложений, т.е. распознавания связей, в том числе логических, между предложением и соответствующим явлением жизни – семантическое рассмотрение (семантика).
- Практическое воздействие языка - есть прагматизм.
[править] Грамматики
Грамматики - наиболее распростронённый класс описаний языков. Описание грамматики языка начинается с определения алфавита, набора терминальных символов из которых состоит язык. После создания алфавита, необходимо определить набор ограничивающих правил, те правила по которым будут строиться слова и предложения в языке, вида α→β. В левой и правой частях этих выражений могут содержаться специальные нетерминальные символы. В процессе вывода нетерминальные символы заменяются соответсвующими терминальными, до полной их замены, с помщью соответствующих правил. Каждая грамматика должна содержать начальный символ или аксиому с которой и начинается любое слово или предложение языка.
[править] Грамматика с фазовой структурой
Грамматика с фазовой структурой - алгебраическая структкра, состоящая из упорядоченной четвёрки G=(N, T, P, S) и определёной на ней неявно операцией конкатенации.
- N - конечное множество нетерминальных символов
- T - не пересекающееся с N конечное множество терминальных символов
- P - набор ограничивающих правил (продукций)
- S - стартовый (начальный символ)
Пример Грамматикой, порождающей язык {0n1n | n≥0}, является G: G= ({0,1}, {S}, P, S), где P = {S→0S1, S→ε}.
Понятие выводимости: Если αβγ последовательный набор символов языка G, а β→δ правило этого языка, то αβγ=>αδγ (αδγ непосредственно выводима из αβγ в G).
Цепь - последовательное присваивание нетерминальных символов. Цикл - замкнутая цепь
x (x ∈ N) - недоступный символ, если x неэквивалентен стартовому символу S (x ≠ S) и не существует выводов типа S+→αxβ. Символ называется непродуктивным, если не существует строки γ, такой, что нетерминальный символ не будет присвоен γ (x→γ) Символ называется бесполезным если он непродуктивен или недоступен.
[править] Список литературы
- Ахо, Дж. Ульман "Теория синтаксического анализа, перевода и компиляции", Т.1 "Синтаксический анализ", М.: Мир, 1978
- Р. Хантер "Проектирование и конструирование компиляторов", ФиС, 1984