Реализовать для языка miniML:
синтаксический анализатор (парсер),
Он должен работать шустро, а не парсить объявления факториала 10 секунд.
type checker
интерпретатор.
Должны обрабатываться ошибки процессе парсинга/типизации/интерпретации (ДЗ не должно крешиться).
Описание MiniML
В язык включаются:
Целые числа, булевы значения и сравнения чисел и прочая арифметика
Идентификаторы должны быть как в OCaml, запрещено резервировать какие-то имена, чтобы их порождать по ходу дела.
К идентификатором разрешено приписывать типы явно
Рекурсивные функции (в компиляторе, объявленные глобально называются structure_item).
First-class функции, с частичным примерением и взаимной рекурсией.
Каррирования и замыкания
Вложенные let-определения
Не должно быть никакого ограничения сверху на количество аргументов у функций.
Стандартные типы данных: bool, int и n-ки (англ. tuples), списки и option.
Полноценные алгебраические типы не надо.
Стандартные функции, чтобы что-нибудь напечатать по ходу интепретации (печать строки, печать числа и т.п.).
Во всех задачах про OCaml, аргумент анонимной функции является так называемым паттерном (англ. pattern). Выражения там разрешать писать нельзя!
Захардкаживать стандартные функции (а ля print_int) в отдельные виды узлов AST нельзя.
github:https://github.com/Kakadu/fp2024/blob/master/tasks.md
Игорь
СибГТУ
Досрочно,понятным и разборчивым почерком,всё объяснили,рекомендую и сам в дальнейшем буду ...
Галина
московский университет С. Ю. Витте
Всем рекомендую данного исполнителя. Заказ выполнен во время и без замечаний. Огромное спа...
Алёна
УРГЭУ
Работа сделана качественно, все четко и подробно расписано! Благодарю за выполненную работ...
Любовь
БГТУ "Военмех"
Уже в который раз обращаюсь к исполнителю за помощью, и как всегда все отлично! Спасибо!)