Задание 3.1E

Лабораторная №3 — задание 3.1E #

Нужно написать конспект по использованию ANTLR4 для проверки грамматики языка.

Что такое ANTLR4 #

ANTLR4 — генератор синтаксических и лексических анализаторов. Основные факты:

  1. Его разработал профессор университета Сан-Франциско для курса по формальным языкам и компиляторам
  2. ANTLR4 имеет огромное число примеров грамматик, готовых решений, инструментов и плагинов для IDE
  3. ANTLR4 использует свой язык описания грамматик g4

Порядок выполнения #

  1. Создайте markdown файл docs/theory/ANTLR4-integration.md. Зафиксируйте в нём способ интеграции ANTLR4 в проект на C# (или C++, если вы разрабатываете проект на нём)
  2. Создайте markdown файл docs/theory/ANTLR4-troubleshooting.md. Зафиксируйте в нём потенциальные проблемы грамматик и их решение средствами ANTLR4

Ссылки #

  1. Документация ANTLR4: файл doc/index.md в репозитории github.com/antlr
  2. Репозиторий грамматик ANTLR4: репозиторий github.com/antlr/grammars-v4

Использование ИИ-моделей #

Для сбора информации рекомендуется использовать ИИ-модели в режиме чата.

Рекомендуемый подход:

  1. Составьте свой промпт и запустите его для двух разных ИИ-моделей
    • Можно выбрать DeepSeek в режиме “DeepThink”
    • Можно выбрать Qwen3-Max в режиме “Deep Research”
    • Можно выбрать Алису в режиме “Рассуждать”
    • Можно выбрать иную ИИ-модель
  2. Вдумчиво прочитайте результаты и выпишите ключевую информацию вручную в markdown файл
  3. Перепроверьте конспект — нет ли забытых вещей («слепых зон»), фактических ошибок или несущественных деталей?
  4. Составьте следующий промпт

Примеры промптов #

Запрос инструкции по интеграции ANTLR4 в проект с C# 12 на платформе Windows:

Ты C# разработчик.

Напиши инструкцию с описанием способа интеграции ANTLR4 в проект на C# 12 и .NET 8 с генерацией кода на C#:
- для C# используй наиболее удобный способ интеграции ANTLR4 — пакет `Antlr4BuildTasks`
- старайся быть лаконичным
- описывай действия по шагам
- добавляй действия для проверки промежуточных результатов (например, консольные команды сборки)
- инструкция должна работать на Windows

Запрос информации по проблемам грамматик и их решению в ANTLR4:

Ты C# разработчик, также разбираешься в формальных языках и разработке комплияторов.
Ты используешь ANTLR4 для генерации синтаксического анализатора выражений.

Опиши потенциальные проблемы для грамматик выражений на ANTLR4.
- старайся быть лаконичным
- описывай проблемы, способы диагностики и решения

В том числе опиши следующие проблемы:

1. Учёт приоритета операторов
2. Левая и правая рекурсия в грамматике
3. Левоассоциативные операции
4. Правоассоциативные операторы (например, возведение в степень)
5. Неоднозначность правил (например, переменная или вызов функции в выражении)