Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика. ответы на вопросы..doc
Скачиваний:
6
Добавлен:
28.10.2018
Размер:
441.34 Кб
Скачать

13.2.3. Иерархия Хомского и контекстно-зависимые грамматики

  В подразделе 13.2.1 была определена малая  часть правил английского языка  на основе контекстно-независимой грамматики (context-free grammar). В такой грамматике в левой части правил может содержаться только по одному нетерминальному символу. Следовательно, правило можно применять к любому вхождению этого символа, независимо от контекста. Хотя контекстно-независимые грамматики зарекомендовали себя как мощное средство определения языков программирования и других формализмов в компьютерных науках, есть основания считать, что сами по себе они недостаточно эффективны для представления правил построения естественного языка. С помощью полученной грамматики можно осуществлять грамматический разбор предложений вида "The dogs like the men" и "A men likes a dogs", в которых артикли и множественное число употребляются некорректно. Анализатор допускает такие предложения, поскольку существующие правила не используют контекст для координации применимости единственного и множественного числа. Например, правило, определяющее предложение sentence как именную конструкцию noun_phrase, за которой следует глагольная verb phrase, не требует согласованности числа существительного и глагола. Та же проблема согласованности возникает при использовании артиклей.

  Языки, определяемые контекстно-независимыми грамматиками, составляют лишь один из классов иерархии формальных языков. Такая иерархия называется иерархией Хомского. На нижнем уровне этой иерархии находится класс регулярных языков (regular language). Регулярным называется язык, грамматика которого может быть определена с использованием конечных автоматов. Хотя регулярные языки активно используются в компьютерных науках, они недостаточно эффективны для представления синтаксиса большинства языков программирования.

  Контекстно-независимые языки (context-free language) в иерархии Хомского расположены на уровень выше регулярных языков. Они определяются с помощью правил вывода. В левой части контекстно-независимых правил может располагаться только один нетерминальный символ. Класс контекстно-независимых языков можно анализировать с помощью сетей переходов. Интересно отметить, что если в анализаторе на основе сетей переходов не допускать рекурсии (т.е. дуги помечать только терминальными символами, не приводящими к "вызову" другой сети), то класс таких языков будет соответствовать множеству регулярных выражений. Таким образом, регулярные языки - это строгое подмножество контекстно-независимых языков.

  Контекстно-зависимые  языки (context-sensitive language) составляют строгое супермножество контекстно-независимых языков. Они определяются с помощью контекстно-зависимых грамматик, которые допускают использование нескольких символов в левой части правила для определения контекста применения этого правила. Таким образом, гарантируются глобальные ограничения, в частности, согласованность единственного и множественного числа. Единственным ограничением для правил контекстнозависимой грамматики является непревышение правой части правила размера его левой части.

  Четвертым классом, составляющим супермножество контекстно-зависимых языков, является класс рекурсивно-перечислимых языков (recursively enumerable language). Такие языки определяются с помощью неограниченных продукционных правил. Поскольку эти правила не такие жесткие, как контекстно-зависимые, класс рекурсивно-перечислимых языков является строгим супермножеством контекстно-зависимых языков. Этот класс не представляет интереса для определения синтаксиса естественного языка, хотя тоже играет важную роль в теории компьютерных наук.

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

  При использовании контекстно-зависимых грамматик резко возрастает количество правил и нетерминальных символов. Представьте себе сложность контекстно-зависимой грамматики, необходимой для описания форм числа (единственного и множественного) и лица (первого, второго и третьего), а также всех остальных форм соглашений, принятых в английском языке. В контекстно-зависимых грамматиках размывается структура фраз языка, столь ясно представимая с помощью контекстно-независимых правил. При попытке описать более сложные соглашения и обеспечить семантическую согласованность самой грамматики теряются многие преимущества разделения синтаксического и семантического компонентов языка. Контекстно-зависимые грамматики не решают проблемы построения семантического представления значения текста. Анализатор, который просто принимает или отвергает предложение, никому не нужен. Он должен возвращать эффективное представление семантического значения предложений.