Call by copy-restore
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:23 UTC 版)
「評価戦略」の記事における「Call by copy-restore」の解説
Call by copy-restore(複製呼びの結果返し、などと意訳される)は、参照呼びの特殊な実装とも見ることができる。実引数の値が値呼びと同様にコピーされるが、関数呼び出しから戻る時に仮引数の変数の値が、あたかも参照呼びされたかのように書き戻される。 参照呼びと異なるのは、ある call by copy-restore の関数呼び出しの複数の引数に同じ変数を渡した場合、参照呼びでは、引数の1つを更新すると他の引数の内容も更新されるが、こちらでは、それぞれが異なるコピーであるため、他の引数の内容が更新されない。呼び出し側に戻ったときにどうなるかはそれぞれの仕様ないし実装による。 他にも、再帰呼び出しを行ったり、マルチスレッド環境で他のスレッドから観察されたりした場合には結果が異なってくる場合がある。 遠隔手続き呼出し (RPC) などで、このようなふるまいが見られることがある。
※この「Call by copy-restore」の解説は、「評価戦略」の解説の一部です。
「Call by copy-restore」を含む「評価戦略」の記事については、「評価戦略」の概要を参照ください。
- Call by copy-restoreのページへのリンク