Теория формальных языков
-
Иерархия формальных грамматик по Чомски
Иерархия Чомского: классы формальных грамматик в лингвистике и информатике. Описание языков, синтаксис, типы грамматик и их включение друг в друга.
-
Контекстно-зависимые грамматики: определение и свойства
Контекстно-зависимые грамматики: определение, свойства и место в иерархии Хомского. Более мощные, чем контекстно-свободные, но менее – неограниченные.
-
Контекстно-зависимые языки: определение и свойства
Контекстно-зависимые языки: определение, свойства и связь с машиной Тьюринга с линейно ограниченной памятью. Тип 1 иерархии Хомского. Теория формальных языков.
-
Контекстно-свободные грамматики: определение и применение
Контекстно-свободная грамматика (КСГ): определение, правила вывода и отличие от контекстно-зависимых грамматик. Теория формальных языков и грамматик.
-
Контекстно-свободные языки и грамматики
Контекстно-свободные языки (КСЯ): определение, грамматики, автоматы с магазинной памятью. Применение в программировании и парсинге. Теория формальных языков.
-
Алгоритм Earley для синтаксического анализа контекстно-свободных языков
Парсер Эрли: алгоритм разбора контекстно-свободных языков. Динамическое программирование, лингвистика, кубическая сложность. Эффективный разбор!
-
Конечные автоматы: математическая модель вычислений
Конечный автомат: мат. модель вычислений. Определение, типы (детерминированные и недетерминированные), состояния, переходы и применение в информатике.
-
Формальные языки: определение и применение
Формальные языки: определение, грамматика и применение в математике, логике и программировании. Основы синтаксиса и структуры языков.
-
LALR-парсеры: теория и применение
LALR-парсер: что это такое? Разбор текста в структурированное представление для компиляторов. Упрощенная версия LR-парсера, разработанная Фрэнком ДеРемером.
-
LR-парсеры: принципы и разновидности
LR-парсеры: анализ языков программирования в компьютерной науке. Типы (SLR, LALR, LR(1), GLR) и генерация из формальных грамматик. Быстрая обработка!
-
Регулярные выражения: история и применение
Регулярные выражения (regex): что это такое? Паттерны для поиска и замены текста, валидации данных. История, теория и применение в программировании.
-
Регулярные языки: теория и обобщения
Регулярные языки в теории формальных языков: определение, примеры (грамматики 3 типа, конечные автоматы). Не регулярные языки и их свойства.
-
Проблема высоты звезды в теории формальных языков
Проблема высоты звезды в теории формальных языков: можно ли выразить все регулярные языки выражениями с ограниченной вложенностью Kleene star? Исследование и примеры.
-
Yacc: Генератор парсеров и его потомки
Yacc: генератор парсеров для Unix. Создает LALR-парсеры из грамматик (BNF). Альтернатива – Bison (GNU). История, разработка и применение Yacc.
-
Bison: Генератор парсеров, совместимый с Yacc
Bison: генератор парсеров, совместимый с Yacc. Создает переносимые LALR(1), LR, GLR парсеры на C/C++/D/Java. Flex для лексического анализа.
-
Алгоритм Кока-Янгера-Касами для синтаксического анализа контекстно-свободных грамматик
Алгоритм CYK (Кока-Янгера-Касами) – эффективный метод синтаксического анализа контекстно-свободных грамматик. Динамическое программирование, CNF.
-
LL-парсеры: теория, типы и применение.
LL-парсеры: разбор контекстно-свободных языков сверху вниз. LL(k) грамматики и парсеры с k символами предпросмотра. Теория и применение в информатике.
-
Формализм Бэкуса-Наура для описания языков программирования
BNF (БНФ): нотация для описания синтаксиса языков программирования и формальных языков. Разработана Backus и Naur. Применение: спецификации, учебники.
-
Простые LR-парсеры: теория и реализация.
SLR-парсер: эффективный анализ синтаксиса в программировании. Простота генерации, небольшие таблицы, высокая скорость разбора. Сравнение с LALR и LR-парсерами.
-
Расширенная форма Бэкуса — Наура: Семейство нотаций для описания грамматик
EBNF: расширенная нотация Бэкуса-Наура для описания синтаксиса языков программирования. Варианты, преимущества, история и применение в CS.
-
Канонические и минимальные LR(1) парсеры: обзор и развитие
Канонический LR-парсер: алгоритм синтаксического анализа языков программирования. LR(1) грамматики, преимущества и недостатки, преобразования грамматик.
-
Древесные автоматы: разновидности и свойства
Конечные автоматы для деревьев: теория, типы (нисходящие, восходящие) и связь с регулярными языками деревьев. Автоматы для обработки древовидных структур.
-
Теория автоматов и абстрактных машин
Теория автоматов: изучение абстрактных машин и автоматов, вычислительных задач. Связь с матлогикой. Автомат – самодействующее вычислительное устройство.
-
Лекс: Генератор лексических анализаторов UNIX
Lex – генератор лексических анализаторов для Unix. Создает сканеры на C (и Ratfor) из описаний, часто используется с yacc. Стандарт POSIX.
-
Парсеры с таблицей: анализ неоднозначных грамматик
Чартовый парсер: анализ неоднозначных грамматик в компьютерной лингвистике. Динамическое программирование, алгоритм Витерби, предотвращение комбинаторного взрыва.
-
Альфред Ахо: Пионер информатики и лауреат премии Тьюринга
Альфред Ахо: канадский ученый, пионер в области языков программирования и алгоритмов. Лауреат премии Тьюринга 2020 года за вклад в компьютерные науки.
-
Моделирование структуры биомолекул с помощью контекстно-свободных грамматик.
Формальные грамматики (PCFGs) для анализа последовательностей. Алгоритм Inside-Outside вычисляет вероятность генерации последовательности грамматикой. Лингвистика, NLP.
-
Машина Мили: Конечный автомат с выходом, зависящим от состояния и входа.
Машина Мили: автомат с конечным числом состояний, выдающий выходные данные в зависимости от состояния и входа. Отличие от машины Мура. Теория вычислений.
-
Топ-даун парсинг: методы и современные решения
Парсинг сверху вниз: метод анализа данных в компьютерной науке и лингвистике. LL-парсеры, формальные грамматики, построение дерева разбора.
-
Детерминированные и недетерминированные автоматы Бюхи: теория и применение.
Детерминированные и недетерминированные автоматы Бюхи: теория, состояния, функции переходов и критерии принятия бесконечных входных данных. Автоматы Бюхи.
-
Метасинтаксис: структура и состав фраз и предложений металлнгвика
Метасинтаксис: структура и состав фраз для описания языков программирования. BNF, EBNF, WSN, ABNF – популярные формальные метаязыки. 💻✨
-
Flex: Генератор лексических анализаторов для UNIX
Flex – генератор лексических анализаторов для UNIX. Создает сканеры/лексеры, альтернатива lex. Используется с Yacc/Bison, основан на DFA. Бесплатный и открытый.
-
Переписывание термов и системы переписывания
Переписывание формул в математике, логике и IT: замена подтермов, системы переписывания, редукционные системы. Недетерминированность правил.
-
Атрибутивные грамматики: Семантический анализ и преобразование синтаксических деревьев
Атрибутивная грамматика: формальный метод добавления семантики к грамматике. Атрибуты и правила вычисления для обработки информации в синтаксическом дереве.
-
Шейла Грейбах: вклад в теорию формальных языков и вычислительную технику
Шейла Грейбах: биография и вклад в информатику. Формальные языки, автоматы, компиляторы, нормальная форма Грейбах. Исследования в области теории вычислений.
-
Таблица переходов состояний в теории автоматов и последовательной логике
Таблица состояний в теории автоматов: определение, применение для описания конечных автоматов и последовательной логики. Альтернатива диаграммам состояний.
-
Древесно-соседственные грамматики: формализм и свойства
Древесно-соседняя грамматика (TAG): формализм Аравинда Джоши для лингвистического анализа. Переписывание деревьев, начальные и вспомогательные деревья.
-
Правило отступов в синтаксисе языков программирования
Оффсайдное правило в программировании: синтаксис, основанный на отступах. Значение отступов для определения блоков кода, история и определение Ландина.
-
Неоднозначные контекстно-свободные грамматики
Неоднозначная грамматика в информатике: определение, примеры, связь с контекстно-свободными языками и детерминированными грамматиками. Проблемы в языках программирования.
-
Детерминированные и недетерминированные конечные автоматы
Конечные автоматы: DFA и NFA. Различия, преимущества и алгоритм преобразования NFA в эквивалентный DFA. Теория автоматов и формальные языки.
-
Парсинг снизу вверх: принципы и применение
Парсинг снизу вверх в информатике: анализ грамматической структуры текста, от деталей к общему смыслу. Построение дерева разбора, оптимизация кода.
-
Чередующиеся конечные автоматы: теория и сложность задач
Конечные автоматы с чередованием (AFA): теория, типы переходов (экзистенциальные и универсальные), не детерминированные автоматы и их поведение.
-
Язык анализа сверху вниз (TDPL) и его обобщение (GTDPL)
TDPL: формальная грамматика для анализа синтаксиса, разработанная А. Бирманом. Изучение нисходящего разбора с поддержкой ограниченного возврата. GTDPL – расширение TDPL.
-
Конечно-автомат с двумя лентами (вход, выход)
Конечный автомат с двумя лентами: входной и выходной. FST (конечный преобразователь) отображает строки, определяя связь между символами. Более мощный, чем FSA.
-
Детерминизация конечных автоматов: метод построения подмножеств.
Построение подмножеств: метод преобразования недетерминированного конечного автомата (НКА) в детерминированный (ДКА). Теория автоматов, алгоритмы, DFA, NFA.
-
Конечные автоматы перестановок и регулярные языки
Конечный автомат перестановки: определение, свойства и связь с p-регулярными языками в теории автоматов. Примеры и формальное описание.
-
Идентификация в пределе: формальная модель индуктивного вывода языков.
Идентификация языка: формальная модель обучения машинному распознаванию формальных языков. Принцип обучения по примерам, бесконечный процесс индукции.
-
Парсеры на основе приоритета операторов
Парсер с приоритетом операторов: реализация, алгоритм сортировочной станции Дейкстры, преобразование инфиксной нотации в RPN. Простота и эффективность.
-
Левая рекурсия в теории формальных языков
Левая рекурсия в теории языков: определение, виды (прямая и косвенная), примеры. Важный концепт для контекстно-свободных грамматик и разбора языков.
-
Линейные языки: свойства и классификация
Линейные грамматики и языки: определение, свойства и примеры. Связь с регулярными и контекстно-свободными языками. {aⁿbⁿ} как линейный язык.
-
Языки Дика и сбалансированные скобки
Дык-слова: сбалансированные строки скобок в математике и информатике. Определение, язык Дыка, применение в парсинге выражений и формальных языках.
-
Сети переходов с расширением: анализ и применение в обработке естественного языка.
Автомат переходов с расширением (ATN) – графовая структура для формальных языков и ИИ. Применяется в парсинге сложных предложений, расширение RTN и FSM.
-
Расширенные Аффиксные Грамматики: Теория и Применение
Расширенные аффиксные грамматики (EAG): формализм для описания синтаксиса языков программирования и естественных языков. Разработка, парсинг, трансляция.
-
Генераторы парсеров Unix: Berkeley Yacc и его производные
byacc: генератор парсеров Unix, совместимый с Yacc. Написан на ANSI C89, быстрее AT&T Yacc, с открытым исходным кодом и поддержкой reentrancy.
-
Лемма о накачке для регулярных языков
Лемма о накачке для регулярных языков: свойство, определяющее регулярные языки. Описание принципа "накачки" подстрок и ограничения длины. Теория формальных языков.
-
Алгоритм преобразования инфиксной нотации в постфиксную (алгоритм сортировочной станции)
Алгоритм сортировочной станции (Shunting Yard) – преобразование выражений из инфиксной нотации в постфиксную (RPN). Разработан Э. Дейкстрой, основан на стеке.
-
Лемма о накачке для контекстно-свободных языков
Лемма о выкачивании для контекстно-свободных языков: свойство, используемое для доказательства не-контекстно-свободности языка. Обобщение леммы для регулярных языков.
-
Сканерless-парсеры: токенизация и синтаксический анализ в одном шаге
Сканерless-парсing: токенизация и синтаксический анализ за один шаг. Оптимизация грамматик языков, примеры (TeX, Raku). Сложность отладки.
-
Программирование на основе автоматов
Программирование на основе автоматов: парадигма, моделирующая программу как автомат (конечный или сложный). Четкое разделение времени на шаги, единая точка входа.
-
Детерминированные автоматы с магазинной памятью: теория и свойства
Детерминированный автомат с магазинной памятью (ДПМА): теория, определение, языки, распознаваемые ДПМА. Переходы, стек, операции над стеком.
-
Двунаправленные конечные автоматы: теория и свойства
Двунаправленный конечный автомат: теория автоматов, определение, свойства и эквивалентность однонаправленным ДКА. Машина Тьюринга без рабочей ленты.
-
Индукция грамматик: методы и подходы в машинном обучении.
Индукция грамматик в машинном обучении: обучение формальным грамматикам из данных. Алгоритмы для конечных автоматов, контекстно-свободных грамматик и др.
-
Матричные грамматики: свойства и классы языков
Матричная грамматика: формальная грамматика с последовательными продукциями. Применение происходит строго по порядку, матрицами. Описание и принципы работы.
-
Выразительная сила формальных языков
Экспрессивность языка программирования: что это такое? Узнайте, как выразительность влияет на возможности представления идей и эффективность вычислений.
-
Unrestricted grammar