User Tools

Site Tools


gram:case-001

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gram:case-001 [2025/11/14 10:57] – created eugeneaigram:case-001 [2025/11/14 10:59] (current) eugeneai
Line 65: Line 65:
 **Результат:** Токенизатор, возвращающий последовательность токенов. **Результат:** Токенизатор, возвращающий последовательность токенов.
  
-==== Лабораторная 2: Синтаксический анализ ====+==== Лабораторная 2: Синтаксический анализ (Парсинг) ====
  
 **Задачи:** **Задачи:**
-1. Реализовать синтаксические правила +  - Реализовать синтаксические правила 
-2. Построить парсер с помощью ANTLR4   +  Построить парсер с помощью ANTLR4   
-3. Сгенерировать абстрактное синтаксическое дерево +  Сгенерировать абстрактное синтаксическое дерево 
-4. Реализовать визитор для обхода AST+  Реализовать визитор для обхода AST
  
 **Тестовые примеры:** **Тестовые примеры:**
Line 84: Line 84:
  
 **Задачи:** **Задачи:**
-1. Реализовать таблицу символов +  - Реализовать таблицу символов 
-2. Проверить типы выражений +  Проверить типы выражений 
-3. Валидировать существование переменных +  Валидировать существование переменных 
-4. Реализовать базовые функции (sin, cos, sqrt)+  Реализовать базовые функции (sin, cos, sqrt)
  
 **Функции проверки:** **Функции проверки:**
-- Проверка объявления переменных +  - Проверка объявления переменных 
-- Валидация типов в операциях +  - Валидация типов в операциях 
-- Проверка аргументов функций+  - Проверка аргументов функций
  
 **Результат:** Семантически проверенное AST. **Результат:** Семантически проверенное AST.
Line 99: Line 99:
  
 **Задачи:** **Задачи:**
-1. Сгенерировать LLVM IR для выражений +  - Сгенерировать LLVM IR для выражений 
-2. Реализовать поддержку переменных +  Реализовать поддержку переменных 
-3. Добавить математические функции +  Добавить математические функции 
-4. Создать исполняемый файл+  Создать исполняемый файл
  
 **Генерация кода для:** **Генерация кода для:**
Line 115: Line 115:
 Для повышения оценки можно реализовать: Для повышения оценки можно реализовать:
  
-* **Оптимизации:** постоянное свертывание, удаление мертвого кода +  * **Оптимизации:** постоянное свертывание, удаление мертвого кода 
-* **Дополнительные типы:** булевы значения, строки   +  * **Дополнительные типы:** булевы значения, строки   
-* **Расширенный синтаксис:** условные выражения, циклы +  * **Расширенный синтаксис:** условные выражения, циклы 
-* **Поддержка JIT-компиляции**+  * **Поддержка JIT-компиляции**
  
 === Примеры реализации === === Примеры реализации ===
Line 139: Line 139:
 === Рекомендуемые ресурсы === === Рекомендуемые ресурсы ===
  
-- [[https://github.com/antlr/antlr4|ANTLR4 официальная документация]] +  - [[https://github.com/antlr/antlr4|ANTLR4 официальная документация]] 
-- [[https://llvm.org/docs/tutorial/|LLVM Tutorial для начинающих]]  +  - [[https://llvm.org/docs/tutorial/|LLVM Tutorial для начинающих]]  
-- [[https://github.com/antlr/antlr4/tree/master/runtime/Python3/examples|Примеры реализации на GitHub]]+  - [[https://github.com/antlr/antlr4/tree/master/runtime/Python3/examples|Примеры реализации на GitHub]]
  
 === Оценка и критерии === === Оценка и критерии ===
gram/case-001.1763089051.txt.gz · Last modified: by eugeneai