Анализ выражения и повторный запуск плана
Анализатор может преобразовать данные выражения в процедуру, которая принимает окружение и выполняет только оставшийся поиск значений и операции.
Какую работу можно выполнить до того, как выражение получит окружение?
- Преобразование каждого узла выражения в процедуру исполнения
- Сохранение проанализированных планов операндов в замыкании
- Повторное использование одного плана с несколькими окружениями
analyze обходит дерево выражения до того, как становятся известны значения переменных. Процедура выбирает каждый оператор и рекурсивно строит процедуру для каждого операнда.
Полученный plan принимает окружение. Его запуск выполняет только поиск переменных, запуск сохраненных планов операндов и применение уже выбранного оператора. Поэтому один проанализированный plan может обслуживать множество окружений.
- Вывод
- —
- Значение
- —
- Диагностика
- —
Первая программа анализирует одно выражение и возвращает (11 25) из двух окружений.
Отделите начальные применения analyze от последующих применений plan. Структура выражения обходится один раз до передачи любого из окружений.
Измените программу и сравните результат.
Добавьте третье окружение, где x равен 1 и y равен 100. Используйте plan повторно без повторного вызова analyze.
Показать подсказку
Только добавьте еще одно применение plan в финальный список.