Синтаксический анализ
Материал из Википедии — свободной энциклопедии
В информатике, синтакси́ческий ана́лиз (па́рсинг) — это процесс анализа входной последовательности символов, с целью разбора грамматической структуры, обычно в соответствии с заданной формальной грамматикой. Синтаксический анализатор (парсер) — это программа или часть программы, выполняющая синтаксический анализ.
При парсинге исходный текст преобразуется в структуру данных, обычно — в дерево, которое отражает синтаксическую структуру входной последовательности и хорошо подходит для дальнейшей обработки.
Обычно синтаксический анализ делится на два уровня:
- лексический анализ — входной поток символов («букв») разбивается на линейную последовательнсть токенов — «слов» языка (напр. целые числа, идентификаторы, строковые константы и т. д.);
- грамматический анализ — из токенов выделяются «предложения» языка, согласно грамматическим правилам, и создается дерево разбора.
[править] Область применения
Все что угодно, имеющее «синтаксис», поддающийся автоматическому анализу.
- Языки программирования — разбор исходного кода языков программирования, в процессе трансляции (компиляции или интерпретации).
- Структурированные данные — данные, языки их описания, оформления и т. д. Например, XML, HTML, CSS, ini-файлы, специализированные конфигурационные файлы и т. п.
- SQL-запросы (которые можно считать или не считать языком программирования)
- математические выражения
- регулярные выражения (которые, в свою очередь, могут использоваться для автоматизации лексического анализа)
- формальные грамматики (которые могут использоваться для автоматизации реализации грамматического анализатора).
- Лингвистика — человеческие языки.
[править] См. также
[править] ПО для разработки анализаторов
- ANTLR - генератор парсеров;
- Bison - генератор парсеров;
- Coco/R - генератор сканера и парсера;
- GOLD - парсер;
- JavaCC - генератор парсеров для языка Java;
- Lemon Parser - генартор парсеров;
- Lex - генератор сканеров;
- LRgen - генератор сканеров и парсеров;
- Rebol
- SableCC - генератор интерпретаторов;
- Spirit Parser Framework - генератор парсеров;
- Yacc - генератор парсеров.