質問

私の回答のための最近の うGOTOsと末尾再帰 したがその例の通スタックです。私のかを十分に一般的なのでお願いします:どのように、この概念のテール電話または同等のものの評価に役立つテーなしで呼び出しスタック?

引き続き、すべてという機能を呼び出し機能は、このようにテール通話で"お電話"はなさそうすることを区別するにメールやイベントベースの構築であるという事で同等のものごとに修正を行ってください私について知っておきましょ間違っています。後者の二つのアーキテクチャ面白い例として彼に伴うOOPはありません。それ以外の建築?たのLisp機に基づきの通話-書庫?

編集:による"どのタッチパネルには:継続パスタイル(CPS)"(アレックスは、下記の者と同等以上のテール電話下での継続を通過しない"という機能を呼び出しに置き換え機能"が"呼び出し機能を継続し、これらを作るのではなく新しい継続".このタイプのテール電話は有用とは異なり、私が主張する.

また、いわゆるシステムにおける利用コールスタックの低レベルの高レベルな通スタックです。この制限になっている、いわアレックスの応答がるのはどうかと思いますので、書いていることその他の呼び出しのアーキテクチャ(ですね。)よく呼び出しスタックに相当ないのではなく、この呼び出しスタックのどこかのフードです。の場合は継続し、その構造になってい arborescence, がエネルギーを最小にし、その移動の向きが逆となります。呼び出しスタックに現れとの関連性の高い私です。

役に立ちましたか?

解決 2

この質問に私以外の人が興味を持っている可能性があるかもしれませんが、 拡張された答え この質問にも答えている他の質問については。ここでは、厳密ではない簡潔なバージョンを示します。

計算システムがサブ計算を実行するとき (つまり、計算が開始され、最初の計算が 2 番目の計算の結果に依存するため、別の計算が実行されている間は一時停止する必要があります)、実行ポイント間の依存関係が自然に発生します。コールスタックベースのアーキテクチャでは、関係はトポロジー的には パスグラフ. 。CPS では、これはツリーであり、ルートとノード間のすべてのパスが連続しています。メッセージの受け渡しとスレッド化では、これはパス グラフのコレクションです。同期イベント処理は基本的にメッセージパッシングです。部分計算の開始には、リーフに追加するのではなくリーフを置き換える末尾呼び出しを除いて、依存関係の拡張が含まれます。

末尾呼び出しを非同期イベント処理に変換するのはより複雑なので、代わりに、より一般的なバージョンを検討してください。A がチャネル 1 のイベントにサブスクライブし、B がチャネル 2 の同じイベントにサブスクライブし、B のハンドラーが単にチャネル 1 でイベントを起動するだけの場合 (イベントをチャネル間で変換します)、A はチャネルのイベントにサブスクライブできます。 2 を購読する代わりに B.これは、末尾呼び出しに相当するものを必要とするため、より一般的です。

  • A がチャンネル 2 に登録すると、A のチャンネル 1 の登録はキャンセルされます。
  • ハンドラーは自動的にサブスクリプションを解除します (呼び出されると、サブスクリプションがキャンセルされます)。

次に、サブ計算を実行しない 2 つのシステムについて説明します。ラムダ計算 (または一般に項書き換えシステム) と RPN。ラムダ計算の場合、末尾呼び出しは項の長さが O(1) である一連のリダクションにほぼ対応します (「反復プロセス」を参照)。 SICP セクション 1.2)。RPN を使用して、データ スタックと操作スタックを使用します (操作のストリームとは対照的です)。操作はまだ処理されていないものです)、およびシンボルを一連の操作にマップする環境。末尾呼び出しは、スタックが O(1) 成長するプロセスに対応する可能性があります。

他のヒント

"建築のない呼び出しスタック"は、通常、"シミュレート"である程度、たとえば、時間のIBM360を用いました S型連携大会 を登録-保存領域の引数がリスト表示により、条約により、一部の汎用レジスタ.

い"テール-電話でも案件:は、呼び出し機能の保全に必要な情報を再度実行後に呼び出しポイント(一度という機能が終了しました)、またはいかができない実行後に呼び出し、その再利用 その呼び出し側の "情報を再実行"ょうか?

したがって、たとえば、テール通話の最適化が意味のない追加の続きを再開する必要があ執行うリンクリストに使用されているのを目的とし---ることが多いという"として呼び出しスタックシミュレーション"(一部レベルで明らかに、より柔軟な配置--いて継続-通のファンにジャンプすべてを使って回答;-).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top