プログラミング言語のランタイムにおける使用
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/04/13 08:33 UTC 版)
「スパゲッティスタック」の記事における「プログラミング言語のランタイムにおける使用」の解説
スパゲッティスタックという語は継続をサポートするプログラミング言語の実装と密接に関係する。スパゲッティスタックは変数のバインディングや他の環境の特徴を含む実際のランタイムスタックの実装に使用される。継続がサポートされなければならないとき、関数から復帰(return)したとき関数の局所変数は破壊できない。a saved continuationはその関数に後に再び入るかもしれず、それは完全な状態の変数と過去のすべてのスタックを期待するので、関数から再び復帰する(return)ことができる。 この問題を解決するため、スタックフレームはスパゲッティスタック内で動的メモリ確保をし、そしてこれ以上継続がないときはそのまま残され、ガベージコレクションによるメモリ開放を待つことになる。この形式の構造は上向き(upward)・下向き(downward)のfunarg問題(英語版)も解決できる。一級レキシカルクロージャはその基板で容易に実装される。 プログラミング言語でのスパゲッティスタックの使用例: SchemeやStandard ML of New Jerseyのような一級継続をもった言語 Smalltalkのような実行時に実行スタックを検査や修正を行う言語 Felix Cilk
※この「プログラミング言語のランタイムにおける使用」の解説は、「スパゲッティスタック」の解説の一部です。
「プログラミング言語のランタイムにおける使用」を含む「スパゲッティスタック」の記事については、「スパゲッティスタック」の概要を参照ください。
- プログラミング言語のランタイムにおける使用のページへのリンク