call stack

/kɔːl stæk/ コールスタック

1. プログラムの実行中に、現在アクティブな関数呼び出しに関する情報を格納するために使用されるスタックデータ構造。

プログラムが実行されている間に、現在どの関数がアクティブで、それらがどのように呼び出されたかという情報を記録しておくためのデータ構造です。新しい関数が呼び出されるたびに情報が「プッシュ」され、関数から戻るたびに情報が「ポップ」されます。これにより、プログラムは関数呼び出しの順序を追跡し、関数終了後に元の場所に戻ることができます。特に、プログラムの実行中にエラーが発生した際に、問題がどの関数のどの部分で発生したかを特定する(バックトレース)ために非常に重要な役割を果たします。
When a function is called, its information is pushed onto the call stack. (関数が呼び出されると、その情報はコールスタックにプッシュされます。)

2. 関数呼び出しの情報の積み重ね。

プログラムが実行を開始した地点(例えば main 関数)から始まり、関数が呼び出されるたびにその情報(戻り先アドレスやローカル変数など)が積み重ねられていきます。この積み重ねられた情報のことをコールスタックと呼びます。最も最近呼び出された関数の情報がスタックの一番上にあり、関数から戻るとその情報が取り除かれます。このLIFO(後入れ先出し)の構造が、関数呼び出しのネストや再帰処理を適切に管理するために利用されます。
Each frame on the call stack represents a single function call. (コールスタック上の各フレームは、一つの関数呼び出しを表します。)