3

継続の概念を理解するのに苦労しています(Seaside with Smalltalkで使用されているように)。ウィキペディアのスニペットには次のように書かれています。

「...ファーストクラスの継続を参照してください。これは、プログラミング言語に任意の時点で実行状態を保存し、プログラムの後の時点でその時点に戻る機能を与えるコンストラクトです...」

これは、割り込みをプログラミングするときにアセンブラ プログラマが行うことを表現する別の方法ではないでしょうか。または、私は完全にポイントを逃しました!

4

3 に答える 3

12

継続は、実行中のプロセスのスナップショット コピーと見なすことができます。継続をキャプチャするということは、現在のプロセスがコピーされて脇に置かれることを意味します。その後、コードは正常に実行され続けます。継続を評価するということは、現在のプロセスが終了し、コピーされたプロセスがキャプチャされたときとまったく同じ状態で再開されることを意味します。通常、継続は複数回再開できます。

割り込みは、相互にインターリーブする 2 つの異なる実行スレッド (アプリケーション コード、割り込みハンドラー) があるコルーチンに似ています。

于 2009-05-07T05:53:41.770 に答える
3

継続は、C の setjump/longjump とほぼ同等です。終了後に継続 (スタック、フラグ、レジスタ、命令ポインターなど) を呼び出すと、コンテキストが損なわれないことが期待できます。したがって、ハンドラーが終了した後に戻る (または、より正確には、継続を呼び出す) 必要がなく、継続が暗黙的でないことを除いて、ソフトウェア割り込み呼び出しに似ています。

于 2009-05-02T23:23:32.960 に答える