スタック

読み:スタック
外語:stack
品詞:さ変名詞

最後に格納したものが真っ先に取り出される形式(LIFO)によるデータの格納方法のこと。英語で積み重ねること。

スタックは、本を積み重ねるような構造である。

新しいデータは上に重ね、取り出す時は上から順に出てくるようなスタイルの構造をなす。

LIFO
LIFO

CISC/RISC

CISCタイプのマイクロプロセッサでは、レジスタの内容の保管に用いたり、他のプログラムを呼び出す際に現在実行中のアドレスを保管しておいたりする際に利用している。

RISCでは、高速化のためにスタックの機能を持っていないものもある。

メモリ

スタックはメインメモリの一部を利用し、その位置はCPUのレジスタであるスタックポインタによって示されるのが一般的である。従って、スタックの大きさは有限であり、格納できるデータの総量は決まっている。

しかしプログラムのバグなどで規定の大きさを超える量のデータをスタックに積んでしまった場合、別のメモリ領域を破壊してしまうことになる。これをスタックオーバーフロー(スタックあふれ)と呼ぶ。