Interested Article - Иерархия Хомского

Иерархия Хомского — классификация формальных языков и формальных грамматик , согласно которой они делятся на 4 типа по их условной сложности. Предложена профессором Массачусетского технологического института , лингвистом Ноамом Хомским .

Классификация грамматик

Согласно Хомскому, формальные грамматики можно разделить на четыре типа. Для отнесения грамматики к тому или иному типу необходимо соответствие всех её правил (продукций) некоторым схемам.

Тип 0 — неограниченные

Грамматика с фразовой структурой G — это алгебраическая структура , упорядоченная четвёрка (V T , V N , P, S), где :

  • V T {\displaystyle V_{T}} алфавит (множество) терминальных символов — терминалов ,
  • V N {\displaystyle V_{N}} алфавит (множество) нетерминальных символов — нетерминалов ,
  • V = V T V N {\displaystyle V=V_{T}\cup V_{N}} словарь G {\displaystyle G} , причём V T V N = {\displaystyle V_{T}\cap V_{N}=\varnothing }
  • P {\displaystyle P} конечное множество продукций (правил) грамматики, P V + × V {\displaystyle P\subseteq V^{+}\times V^{*}}
  • S {\displaystyle S} начальный символ ( источник ).

Здесь V {\displaystyle V^{*}} — множество всех строк над алфавитом V {\displaystyle V} , а V + {\displaystyle V^{+}} — множество непустых строк над алфавитом V {\displaystyle V} .

К типу 0 по классификации Хомского относятся — грамматики с фразовой структурой , то есть все без исключения формальные грамматики. Правила можно записать в виде:

α β {\displaystyle \alpha \rightarrow \beta } ,

где α V + {\displaystyle \alpha \in V^{+}} — любая непустая цепочка, содержащая хотя бы один нетерминальный символ, а β V {\displaystyle \beta \in V^{*}} — любая цепочка символов из алфавита.

Практического применения в силу своей сложности такие грамматики не имеют.

Тип 1 — контекстно-зависимые

К этому типу относятся контекстно-зависимые (КЗ) грамматики и неукорачивающие грамматики. Для грамматики G ( V T , V N , P , S ) , V = V T V N {\displaystyle G(V_{T},V_{N},P,S),V=V_{T}\cup V_{N}} все правила имеют вид :

  • α A β α γ β {\displaystyle \alpha A\beta \rightarrow \alpha \gamma \beta } , где α , β V , γ V + , A V N {\displaystyle \alpha ,\beta \in V^{*},\gamma \in V^{+},A\in V_{N}} . Такие грамматики относят к контекстно-зависимым.
  • α β {\displaystyle \alpha \rightarrow \beta } , где α , β V + , 1 | α | | β | {\displaystyle \alpha ,\beta \in V^{+},1\leq |\alpha |\leq |\beta |} . Такие грамматики относят к неукорачивающим.

Эти классы грамматик эквивалентны. Могут использоваться при анализе текстов на естественных языках, однако при построении компиляторов практически не используются в силу своей сложности. Для контекстно-зависимых грамматик доказано утверждение: по некоторому алгоритму за конечное число шагов можно установить, принадлежит цепочка терминальных символов данному языку или нет.

Тип 2 — контекстно-свободные

К этому типу относятся контекстно-свободные (КС) грамматики . Для грамматики G ( V T , V N , P , S ) , V = V T V N {\displaystyle G(V_{T},V_{N},P,S),V=V_{T}\cup V_{N}} все правила имеют вид:

  • A β {\displaystyle A\rightarrow \beta } , где β V + {\displaystyle \beta \in V^{+}} (для неукорачивающих КС-грамматик) или β V {\displaystyle \beta \in V^{*}} (для укорачивающих), A V N {\displaystyle A\in V_{N}} . То есть грамматика допускает появление в левой части правила только .

КС-грамматики широко применяются для описания синтаксиса компьютерных языков (см. синтаксический анализ ).

Тип 3 — регулярные

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

Все регулярные грамматики могут быть разделены на два эквивалентных класса, которые для грамматики вида III будут иметь правила следующего вида:

  • A B γ {\displaystyle A\rightarrow B\gamma } или A γ {\displaystyle A\rightarrow \gamma } , где γ V T , A , B V N {\displaystyle \gamma \in V_{T}^{*},A,B\in V_{N}} (для леволинейных грамматик).
  • A γ B {\displaystyle A\rightarrow \gamma B} ; или A γ {\displaystyle A\rightarrow \gamma } , где γ V T , A , B V N {\displaystyle \gamma \in V_{T}^{*},A,B\in V_{N}} (для праволинейных грамматик).

Регулярные грамматики применяются для описания простейших конструкций: идентификаторов , строк , констант , а также языков ассемблера , командных процессоров и др.

Классификация языков

Формальные языки классифицируются в соответствии с типами грамматик, которыми они задаются. Однако, один и тот же язык может быть задан разными грамматиками, относящимися к разным типам. В таком случае, считается, что язык относится к наиболее простому из них. Так, язык, описанный грамматикой с фразовой структурой, контекстно-зависимой и контекстно-свободной грамматиками, будет контекстно-свободным.

Так же, как и для грамматик, сложность языка определяется его типом. Наиболее сложные — языки с фразовой структурой (сюда можно отнести естественные языки), далее — КЗ-языки, КС-языки и самые простые — регулярные языки.

Примечания

  1. , с. 258,264.
  2. Серебряков В. А., Галочкин М. П., Гончар Д. Р., Фуругян М. Г. Теория и реализация языков программирования. — М. : МЗ-Пресс, 2006. — С. 21. — ISBN 5-94073-094-9 .
  3. , с. 268.

Литература

  • Молчанов А. Ю. Системное программное обеспечение. СПб.: Питер, 2006.
  • Джон Хопкрофт , Раджив Мотвани , Джеффри Ульман . ГЛАВА 5. Контекстно-свободные грамматики и языки // Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. — М. : , 2002. — С. 528. — ISBN 0-201-44124-1 .
  • Серебряков В. А. , Галочкин М. П., Гончар Д. Р., Фуругян М. Г. — М.: МЗ-Пресс, 2006 г., 2-е изд. — ISBN 5-94073-094-9
  • . Основные концепции компиляторов = The Essence of Compilers. — М. : , 2002. — С. 256. — ISBN 5-8459-0360-2 .
  • Кук Д., Бейз Г. Глава 8. Языки и грамматики // Компьютерная математика = Computer Mathematics. — М. : Наука. Физматлит, 1990. — 384 с. — ISBN 5-02-014216-6 .

Same as Иерархия Хомского