Stack)は、プログラムで実行中のサブルーチンに関する情報を格納するスタックである。実行中のサブルーチンとは、呼び出されたが処理を完了していないサブルーチンを意味する。Stack)などとも呼ばれる。「スタック」と言ったときにコールスタックを指していることが多い。コールスタックを正しく保つことは多くのソフトウェアが正常動作するのに重要であるが、その詳細は高水準言語からは透過的である。外部リンク概要[編集]コールスタックを使う目的はいくつかあるが、主たる目的は実行中サブルーチンの処理を完了して制御を戻す(呼び出し側に戻る)ときに、どこに戻ればよいかを覚えておくことである。次の擬似コードを考える。...}サブルーチンDrawSquare内の4ヶ所からサブルーチンDrawLineを呼び出すとしたとき、DrawLineは4ヶ所のうちのどこに戻ればよいかを知る必要がある。一般にDrawSquareのコード内でDrawLineを呼び出しているそれぞれの箇所で、呼び出し処理の次の命令のアドレス(これをリターンアドレスと呼ぶ)をコールスタックに格納することでこれを実現する。する(そしてそのアドレスに制御を戻す)。し、プログラムに書かれている通りに情報をスタックに積んだり下ろしたりする。コールスタックに割り当てられている領域を使い切ると「スタックオーバフロー」と呼ばれるエラーが発生する。