Грамматика с фразовой структурой

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Языки и грамматики. Основные понятия[править | править исходный текст]

Назначение языков и грамматик заключается в:

Буква(символ) — простой неделимый знак.

Алфавит — множество букв (символов) 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= ({S}, {0,1}, P, S), где P = {S→0S1, S→ε}.

Понятие выводимости: Если αβγ последовательный набор символов языка G, а β→δ правило этого языка, то αβγ=>αδγ (αδγ непосредственно выводима из αβγ в G).

Цепь — последовательное присваивание нетерминальных символов. Цикл — замкнутая цепь

x (x ∈ N) — недоступный символ, если x неэквивалентен стартовому символу S (x ≠ S) и не существует выводов типа S+→αxβ. Символ называется непродуктивным, если не существует строки γ, такой, что нетерминальный символ не будет присвоен γ (x→γ) Символ называется бесполезным если он непродуктивен или недоступен.

Список литературы[править | править исходный текст]

  • Ахо, Дж. Ульман «Теория синтаксического анализа, перевода и компиляции», Т.1 «Синтаксический анализ», М.: Мир, 1978
  • Р. Хантер «Проектирование и конструирование компиляторов», ФиС, 1984

Ссылки[править | править исходный текст]