(1)多数のデータを管理するためのデータ構造の一つ。もとは 干し草などを積み上げた山のことを指す英語。干し草の山と同様 データを次々に追加した後でデータを取り出すと 追加した順序と逆の順序で取り出される(後入れ先出し)。データを追加することをプッシュ(push) 取り出すことをポップ(pop)と呼ぶ。(2)プログラムを実行する際に一時的に利用される変数などを格納するためのメモリー領域。(1)の後入れ先出しのデータ構造を持つためこう呼ばれる。例えばVisualBasicやC/C++では プロシジャを呼び出した時点で そのプロシジャ内部で定義された変数や引数 戻り先のアドレスが格納され 呼び出しから戻ると破棄される。スタック内部の同じ領域が異なるプロシジャの呼び出しに対して再利用されるため 各変数に対して静的にメモリーを割り当てるのと比べてメモリーを節約できる。再帰呼び出しの繰り返しなどによってスタック領域が足りなくなり データがあふれることをスタック・オーバーフローと呼ぶ。