スタックとは
すたっく
最後に入れた要素を最初に取り出す、後入れ先出し(LIFO)のデータ構造。要素を積む操作を push、取り出す操作を pop という。関数呼び出しの戻り先や局所変数の管理(コールスタック)、逆ポーランド記法の式の計算、深さ優先探索などに使われる。
「スタック」は、8分野の34問の練習問題に出てきます(命令セット・アセンブリ, リンカ・ローダと実行形式, データ構造とアルゴリズムなど)。
この用語の分野: データ構造とアルゴリズム
すたっく
最後に入れた要素を最初に取り出す、後入れ先出し(LIFO)のデータ構造。要素を積む操作を push、取り出す操作を pop という。関数呼び出しの戻り先や局所変数の管理(コールスタック)、逆ポーランド記法の式の計算、深さ優先探索などに使われる。
「スタック」は、8分野の34問の練習問題に出てきます(命令セット・アセンブリ, リンカ・ローダと実行形式, データ構造とアルゴリズムなど)。
この用語の分野: データ構造とアルゴリズム
raは関数を呼ぶjalのたびに上書きされるので、ほかの関数を呼ぶ関数は自分の戻り先を最初にスタックへ保存しなければなりません。
ほかの関数を呼ばない関数(葉関数、リーフ関数)では、raをスタックに保存しなくてよい場合が多い。その理由として正しいも…そのため、ほかの関数を呼ぶ関数は、プロローグでraをスタックに保存し、エピローグで戻すのが決まりです。
RISC-Vで、自分自身を呼び出す再帰関数を書くときに、raをスタックに保存し忘れるとどうなるか。ヒープは番地の大きい方へ、スタックは小さい方へ伸びるので、間の空きは、ヒープを多く使うプログラムにもスタックを多く使うプログラムにも使えます。
プロセスのヒープとスタックを、間に広い空きをはさんで反対向きに伸ばす配置にする利点として正しいものはどれか。スタックには上限があり、その先にはアクセスを禁止したガードページが置かれます。
再帰が深くなりすぎてスタックの上限を超えたとき、Linuxなどで一般に起こることとして正しいものはどれか。パソコンのOSでは、スタックの先にアクセス禁止のページを置いてあふれを検出できますが、MMUのないマイコンではその仕組みがないことが多く、スタックがあふれるとその先にある変数などを黙って上書きします。
MMUを持たない小さなマイコンで、スタックの使いすぎについて注意すべきこととして正しいものはどれか。Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。