CEK機械
CEK機械はCPS変換した評価関数から導出するため、call/ccやshift/resetといったCPS変換で実装できる演算子との相性が良い。
例えば、次のように拡張することで、call/ccを追加できる。
M ::= . . . | c a l l / c c X . M {\displaystyle M::=...\ |\ \mathrm {call/cc} \ X.M}
V ::= . . . | ⟨ e s c , K ⟩ {\displaystyle V::=...\ |\ \left\langle {\mathsf {esc}},K\right\rangle }
⟨ ⟨ c a l l / c c X . M , E ⟩ , K ⟩ {\displaystyle \left\langle \left\langle \mathrm {call/cc} \ X.M,E\right\rangle ,K\right\rangle } ⟼ c e k ⟨ ⟨ M , E [ X ← ⟨ e s c , K ⟩ ] ⟩ , K ⟩ {\displaystyle \longmapsto _{\mathsf {cek}}\left\langle \left\langle M,E[X\leftarrow \left\langle {\mathsf {esc}},K\right\rangle ]\right\rangle ,K\right\rangle }