プログラミング言語処理系の実装
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/09 23:01 UTC 版)
「スタック」の記事における「プログラミング言語処理系の実装」の解説
詳細は「コールスタック」を参照 ほとんどのコンパイルされたプログラムは実行時(ランタイム)環境においてコールスタックを使用し、プロシージャ/関数呼び出しに関する情報を格納するのに使っている。そして、呼び出し時のコンテキスト切り替えや呼び出し元への復帰の際に使用して、呼び出しの入れ子を可能としている。そのとき、呼び出される側と呼び出し側の間には引数や返り値をスタックにどう格納するかという規則が存在する。スタックは関数呼び出しの入れ子や再帰呼び出しを実現するための重要な要素となっている。この種のスタックはコンパイラが内部的に使用するもので、プログラマがこれを直接操作することはほとんど無い。 コールスタック内に関数の呼び出し毎に作られるフレームをスタックフレームと言い、それをたどって(トレースして)得られる呼び出しの情報をスタックトレースと言う。 プログラミング言語によっては、プロシージャ内のローカルなデータをスタックに格納する。ローカルなデータの(スタック上の)領域はプロシージャに入ってきたときに割り当てられ、出て行くときに解放される。C言語はこのような手法で実装されている典型例である。データとプロシージャ呼び出しに同じスタックを使うことは重大なセキュリティ問題を引き起こす可能性があり、プログラマはそのようなバグを作りこんで深刻なセキュリティ問題を発生させないように気をつける必要がある。
※この「プログラミング言語処理系の実装」の解説は、「スタック」の解説の一部です。
「プログラミング言語処理系の実装」を含む「スタック」の記事については、「スタック」の概要を参照ください。
- プログラミング言語処理系の実装のページへのリンク