1. Введение
1.1. Глоссарий
Образец – исходное выражение, над которым будут производиться эквивалентные преобразования
Эквивалентное преобразование – такое преобразование, применив которое к любому выражению, мы получим другое выражение, эквивалентное данному
Ошибочное преобразование – такое преобразование, применив которое к любому вы-ражению, мы получим другое выражение, не эквивалентное данному
Описание параметров – часть входных данных, описывающие правила генерации па-раметров
Генерируемый параметр – заданная в образце по определённым правилам переменная, которая в последствие принимает случайное значение в заданном в описание диапазоне и удовлетворяющее всем ограничениям, заданным в описании
Прототип пользовательской функции – заданная по определённым правилам перемен-ная, является особым видом генерируемых параметров. Принимает значение заданной в раз-деле описания пользовательской функции от других генерируемых параметров.
Сложность преобразования – наперёд заданная пользователем неотрицательная цело-численная константа, определяющая относительную сложность применения данного преоб-разования к любому выражению
Сложность выражения – сумма сложностей всех преобразований, сделанных над об-разцом, для получения данного выражения
Код дерева – последовательность байт, являющаяся хеш кодом данного дерева
Нормализованное дерево – такое дерево, в котором у каждой коммутативной операции аргументы расположены по возрастанию кода
Коммутативное дерево – такое дерево, в котором все бинарные операции, которые возможно, заменены эквивалентными коммутативными
Мультиарная операция – особое представление ряда одинаковых бинарных операций
1.2. Описание предметной области
В настоящее время для проверки знаний в учебных заведениях используются тесты и контрольные работы из учебников и задачников.
Производство задачников является нецелесообразной и дорогостоящей деятельностью.
Т.к. бумажные носители информации достаточно дорогостоящие, были предприняты попытки реализации программных продуктов тестовых систем.
1.3. Существующие решения и их недостатки
Было рассмотрено несколько тестирующих систем, которые можно разделить на сле-дующие классы:
• Тестовая система с определённым фиксированным банком заданий;
• Тестовая система с автоматической генерацией заданий узкого профиля, где алго-ритм генерации жестко вшит в систему;
1.4. Неформальная постановка задачи
Необходимо разработать и реализовать библиотеку удовлетворяющую следующим требованиям:
• формальное описание входных данных, а именно:
o образца;
o эквивалентных преобразований;
o ошибочных преобразований;
o прототипов пользовательских функций;
• проверка синтаксиса в заданных пользователем описаниях;
|