エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Ruby のスタックフレーム
普通の、関数(またはメソッド)を主体とした言語では、関数呼びだし(など)のたびに、 ローカル変数や戻る... 普通の、関数(またはメソッド)を主体とした言語では、関数呼びだし(など)のたびに、 ローカル変数や戻る場所など関数一つの実行のために必要な情報を構造体に格納し、 それをスタックに積む。関数から戻るとスタックの先頭の構造体が pop されて実行が 前のメソッドに戻る。 ruby の実行もやはりメソッドの連鎖に他ならないから、やはり同様の実行イメージを 持っている。ただし以上のような単純なイメージはあくまで「概要は」そうであるという 話であって、実際にはもっと複雑なことになっている。それというのも Ruby には イテレータのように実行の経路自体をスクリプトから変化させる機能があるため、 単純なスタックの push/pop だけでは実装できないからだ。そのためスタックに 積む構造体もひとつでなく機能ごとに分割されており、実行中に複雑に積みかえられる。 具体的にはその構造体は struct FR