﻿# Синтаксический анализ

Синтаксический анализ \(синтаксический разбор\) — это процесс сопоставления линейной последовательности лексем языка \(слов, токенов\) с его формальной грамматикой\. Результатом обычно является [дерево разбора](https://pvs-studio.ru/ru/blog/terms/0039/) или [абстрактное синтаксическое дерево](https://pvs-studio.ru/ru/blog/terms/0004/)\. Для синтаксического разбора языков программирования используются контекстно\-свободные грамматики\. Это обоснованно тем, что грамматики более общих типов по иерархии Хомского \(контекстно\-зависимые и, тем более, естественные\) гораздо труднее поддаются определённому анализу, а более простые \(регулярные грамматики\) не позволяют описывать вложенные конструкции языка и поэтому недостаточно выразительны\.

Методы синтаксического разбора можно разбить на два больших класса в соответствии с порядком построения дерева разбора: восходящие и нисходящие\. Нисходящие методы \(методы сверху вниз\) начинают с правила грамматики, определяющего конечную цель анализа с корня дерева синтаксического разбора и пытаются его наращивать, чтобы последующие узлы дерева соответствовали синтаксису анализируемого предложения\. Восходящие методы \(методы снизу вверх\) начинают с конечных узлов дерева синтаксического разбора и пытаются объединить их построением узлов всё более и более высокого уровня до тех пор, пока не будет достигнут корень дерева\.

**Список источников**

1. [Wikipedia\.Синтаксический анализ](https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7)
1. [Wikipedia\.Нисходящий синтаксический анализ](https://ru.wikipedia.org/wiki/%D0%9D%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D0%B9_%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7)
1. [В\.А\.Серебряков, М\.П\.Галочкин\. Основы конструирования компиляторов Глава 4\. Синтаксический анализ](http://citforum.ru/programming/theory/serebryakov/4.shtml)