典型的なスタックとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 典型的なスタックの意味・解説 

典型的なスタック

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/09 23:01 UTC 版)

スタック」の記事における「典型的なスタック」の解説

典型的なスタックはコンピュータメモリ上に固定基点可変サイズを持つ領域である。初期状態ではスタックサイズゼロである。「スタックポインタ」(一般にハードウェアレジスタ使われる)はスタック内で最も後で参照され位置指している。スタック長がゼロのとき、スタックポインタスタック基点を指す。 あらゆるスタック実施可能な2つ操作以下の通りである。 Push操作 スタックポインタが指す場所にデータ格納し、そのデータサイズのぶんだけスタックポインタをずらす。 Pop操作 スタックポインタ指している現在位置にあるデータ取り出しスタックポインタをそのデータのぶんだけ(Pushとは逆方向に)ずらす。 スタック操作基本原則には様々なバリエーションがある。スタック初期状態ではメモリ上の固定位置配置されるデータスタック追加されると、スタックポインタデータ追加に伴うスタック領域拡張に従って変更されるそのときスタック延びていく方向は特に規則無く実装によってアドレス小さくなる方向だったり、大きくなる方向だったりする。 昔のコンピュータで、ヒープ領域アドレス小さいほうから大きいほうへ伸ばしスタック大きいほうから小さいほうへ伸ばすそのようにすると、メモリ足りない場合はどちらを伸ばす余裕もなく、完全にメモリ使い切って計算続行不可能となる)という設計にした名残りから、アドレス大きいほうから小さいほうへ伸びるものが多いが、PA-RISCは逆である。 例えば、あるスタック1000番地から開始してアドレス小さ方向延びていくとする。その場合、データ1000番地よりも小さ番地格納されスタックポインタはそれに伴って小さな番地格納するうになる。そのスタックからデータPopすると、スタックポインタ格納されているアドレス大きくなる。 (初期状態の)スタックポインタスタック基点そのものではなく、その少し上か下(スタック成長方向依存)の限界アドレス指している場合もある。しかし、スタックポインタ基点超えていくことはできない換言すれば、スタック基点1000番地スタックアドレス小さ方向999番地、998番地など)に成長する場合スタックポインタ決し1000番地超えてならない(1001番地や1002番地不可)。Pop操作によってスタックポインタ基点超えると「スタック・アンダーフロー」が発生する逆にPush操作スタック最大許容範囲超えてスタックポインタ操作することになるなら「スタック・オーバーフロー」が発生するスタック強く依存している環境では、追加操作備えている場合がある。以下に例をあげる。 Dup(licate) トップアイテムpop して2回 push する。これによって元のスタックトップのアイテムが2個スタックトップに存在することになる。 Peek トップアイテムpop するが、スタックポインタ変更せずスタックサイズ変化しない(つまり、アイテムスタック上に残存する)。Top 操作と呼ぶことも多い。 Swap または Exchange スタックトップの2つアイテム(つまり一番目二番目)を入れ替えるRotate トップの n 個のアイテム回転するように入れ替える例えば、n = 3 で、スタック1、2、3 が順に置かれているとき、この順番2、3、1 のように変化させる。この操作バリエーション多く一般にleft rotate(左回転)とright rotate(右回転)と呼ばれる操作備えることが多い。 スタックは上に成長するようにイメージされることもあるし、左から右に成長するようにイメージされることもあり、トップという言い方ではなく右端と言ったりもする。このようなイメージメモリ上のスタック実際の構造とはあまり関係ないright rotateと言ったとき、一番目要素三番目位置に置き、二番目一番目三番目二番目位置に置く。これを二種類イメージで表すと次のうになるapple bananabanana ===right rotate==> cucumbercucumber apple cucumber applebanana ===left rotate==> cucumberapple banana スタックコンピュータ内では通常メモリセルブロック構成される。そのブロックの「底」は固定位置にあり、スタックポインタが「トップ」のセルアドレス格納している。「底」とか「トップ」という用語はスタックアドレス大きくなる方向成長するか、小さくなる方向成長するかに関係なく使われるスタックへのアイテムpush により、そのアイテムサイズのぶんだけスタックポインタずらされ増減メモリ空間内のスタック成長方向依存する)、次のセルを指すようにして、新たなトップとなるアイテムスタック領域コピーする詳細な実装依存するが、push 操作完了したときのスタックポインタの値はスタック上の次の未使用領域指しているかもしれないし、現在のトップアイテム指しているかもしれないスタックポインタ現在のトップアイテム指している場合次回pushときには最初にスタックポインタをずらさなければならない逆にスタックポインタ次の未使用領域指しているなら、次回pushときには最後にスタックポインタをずらすことになる。 スタックpop 操作push の逆となる。Push とは逆の順番スタックトップアイテム取り出されスタックポインタ更新される

※この「典型的なスタック」の解説は、「スタック」の解説の一部です。
「典型的なスタック」を含む「スタック」の記事については、「スタック」の概要を参照ください。

ウィキペディア小見出し辞書の「典型的なスタック」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「典型的なスタック」の関連用語

典型的なスタックのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



典型的なスタックのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのスタック (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS