Стратегия оценки
-
Стратегии оценки в программировании
- Стратегии оценки определяют, когда и как аргументы функции оцениваются.
- Существуют различные стратегии оценки, включая вызов по значению, вызов по ссылке, вызов по совместному использованию и другие.
-
Вызов по значению
- Аргументы функции оцениваются перед вызовом функции.
- Пример: в Python списки могут быть изменены и переданы с помощью call by sharing.
-
Вызов по ссылке
- Аргументы функции передаются по адресу, что позволяет изменять их значения.
- Пример: в C подкачка может быть реализована с использованием указателей.
-
Вызов по объединению
- Вычисление выражения может соответствовать унификации терминов и разрешению.
- Унификация может выполняться для неограниченных переменных.
-
Нестрогая привязка
- Стратегии нестрогой привязки включают вызов по имени, вызов по необходимости и другие.
- Вызов по имени подставляет аргументы в тело функции, избегая перехвата.
- Вызов по необходимости запоминает значения аргументов для последующего использования.
-
Вызов с помощью расширения макроса
- Макросы могут вызывать подстановку переменных, что может привести к ошибкам.
- Гигиеничные макросы избегают перехвата скрытых переменных.
-
Вызов в будущем
- Стратегия параллельной оценки, сочетающая нестрогую семантику и активную оценку.
- Создает будущее для тела функции и аргументов, которые вычисляются параллельно.
-
Оптимистичная оценка
- Вариант вызова по необходимости, частично вычисляющий аргументы в течение некоторого времени.
- После этого времени оценка прерывается и применяется с использованием вызова по необходимости.
Полный текст статьи: