GNU Bison — программа, предназначенная для автоматического создания синтаксических анализаторов по данному описанию грамматики. Программа bison относится к свободному ПО, разработана в рамках проекта GNU и портирована под все традиционные операционные системы. Программа bison во многом совместима с подобной программой yacc. Обычно используется в комплексе с лексическим анализатором flex.
В информатике лексический анализ — процесс аналитического разбора входной последовательности символов на распознанные группы — лексемы, с целью получения на выходе идентифицированных последовательностей, называемых «токенами». В простых случаях понятия «лексема» и «токен» идентичны, но более сложные токенизаторы дополнительно классифицируют лексемы по различным типам. Лексический анализ используется в компиляторах и интерпретаторах исходного кода языков программирования, и в различных парсерах слов естественных языков.
Синтакси́ческий ана́лиз в лингвистике и информатике — процесс сопоставления линейной последовательности лексем естественного или формального языка с его формальной грамматикой. Результатом обычно является дерево разбора. Обычно применяется совместно с лексическим анализом.
«Компиляторы: принципы, технологии и инструменты» — классический учебник по теории построения компиляторов под авторством Альфреда В. Ахо, Рави Сетхи и Джеффри Д. Ульмана, известный также как «Книга дракона». Иногда его называют «книгой красного дракона», в отличие от «книги зелёного дракона» — предыдущей книги Ахо и Ульмана, носящей название «Принципы построения компиляторов» (1977), на обложке которой был изображён зелёный дракон.
Парсер, или синтаксический анализатор, — часть программы, преобразующей входные данные в структурированный формат. Парсер выполняет синтаксический анализ текста.
Lex — программа для генерации лексических анализаторов, обычно используемая совместно с генератором синтаксических анализаторов yacc. Lex был первоначально написан Эриком Шмидтом и Майком Леском и является стандартным генератором лексических анализаторов в операционных системах Unix, а также включён в стандарт POSIX. Lex читает входной поток, описывающий лексический анализатор, и даёт на выходе исходный код на языке программирования Cи.
GNU Compiler Collection — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.
Проект GNU — проект по разработке свободного программного обеспечения (СПО), является результатом сотрудничества множества отдельных проектов. Проект был запущен известным программистом и сторонником СПО Ричардом Столлманом 27 сентября 1983 года в Массачусетском технологическом институте. Изначальной целью проекта было «разработать достаточно свободного программного обеспечения <…>, чтобы можно было обойтись без программного обеспечения, которое не является свободным». Чтобы этого достичь, проект в 1984 году приступил к разработке операционной системы GNU. Эта цель была достигнута в 1992 году, когда последний пробел в ОС GNU — ядро системы — был заполнен сторонней разработкой, ядром Linux, которое было выпущено как свободное программное обеспечение в соответствии с лицензией GNU GPL v2.
ANTLR — генератор нисходящих анализаторов для формальных языков. ANTLR преобразует контекстно-свободную грамматику в виде РБНФ в программу на C++, Java, C#, JavaScript, Go, Swift, Python. Используется для разработки компиляторов, интерпретаторов и трансляторов.
Расширенная форма Бэкуса — Наура — формальная система определения синтаксиса, в которой одни синтаксические категории последовательно определяются через другие. Используется для описания контекстно-свободных формальных грамматик. Предложена Никлаусом Виртом. Является расширенной переработкой форм Бэкуса — Наура, отличается от БНФ более «ёмкими» конструкциями, позволяющими при той же выразительной способности упростить и сократить в объёме описание.
LR-анализатор (англ. LR parser) — синтаксический анализатор для исходных кодов программ, написанных на некотором языке программирования, который читает входной поток слева (Left) направо и производит наиболее правую (Right) продукцию контекстно-свободной грамматики. Используется также термин LR(k)-анализатор, где k выражает количество непрочитанных символов предпросмотра во входном потоке, на основании которых принимаются решения при анализе. Обычно k равно 1 и часто опускается.
Компилятор компиляторов — программа, воспринимающая синтаксическое или семантическое описание языка программирования и генерирующая компилятор для этого языка.
В информатике неоднозначной грамматикой называется формальная грамматика, которая может породить некоторую строку более чем одним способом. Язык называется существенно неоднозначным, если он может быть порождён только неоднозначными грамматиками.
Грамматика, разбирающая выражение (РВ-грамматика) — тип аналитической формальной грамматики, описывающей формальный язык в терминах набора правил для распознавания строк языка. Грамматика, разбирающая выражение, в сущности, представляет собой синтаксический анализатор рекурсивного спуска в чисто схематической форме, которая выражает только синтаксис и не зависит от конкретной реализации или применения синтаксического анализатора. Грамматики, разбирающие выражение, похожи на регулярные выражения и на контекстно-свободные грамматики (КС-грамматики) в нотации Бэкуса-Наура, но имеют отличную от них интерпретацию.
Грамматика ван Вейнгаардена — это двухуровневая грамматика, которая предоставляет способ определения потенциально бесконечных грамматик через конечное число правил. Формализм был изобретён Адрианом ван Вейнгаарденом для определения некоторых синтаксических ограничений, которые ранее должны были формулироваться на естественных языках, несмотря на свою принципиально синтаксическую сущность. Типичными применениями являются обработка рода и числа в естественных языках и правильное формулирование идентификаторов в языках программирования.
LALR(1) — восходящий алгоритм синтаксического разбора.
Это список программного обеспечения, разрабатываемого Free Software Foundation как часть проекта GNU — UNIX-подобной операционной системы, состоящей целиком из свободного программного обеспечения. Большая часть из этих пакетов также используется совместно с ядром Linux, что образует целостную операционную систему.
Flex — генератор лексических анализаторов. Заменяет Lex в системах на базе пакетов GNU и имеет аналогичную функциональность. При этом Flex не является частью проекта GNU.