Ответ 1
Они называются так из-за того, как они реализованы (в общем).
Цитата из Прямая реализация Shift и Reset в компиляторе MinCaml
Интерпретируя программу, используя семантику продолжения, мы можем рассматривать состояние программы как продолжение стек. Тогда
reset
может быть как обозначение продолжения стек иshift
, захватив стек продолжения до ближайшего метка, созданнаяreset
. Здесь обзор реализации:
- При вызове
reset
установите reset знак в стек- При вызове
shift
(fun k -> M)
, переместите часть фреймов стека до ближайший знак Reset в кучу- При вызове продолжения
k
установите метку reset в стек и скопируйте соответствующие кадры из кучи в верхняя часть стека.Значок Reset вставлен, когда
k
так как захваченные продолжения выполняются в пустом продолжении.