スコープ (プログラミング)
実行時の動的な呼出の親子関係によって導入されるスコープ。関数が呼び出し元で展開されたかのようなスコープが構成される。実行時に名前による解決が必要なため、普通にコンパイルしてこれを実現するのは面倒である。
クラスベースのオブジェクト指向言語で、あるクラスの定義全体から参照できるスコープ。このスコープに属する変数はクラス変数とも呼ばれ、関数はクラスメソッドとも呼ばれる。クラス全体で共有されるので、ある種の制限された大域スコープと考えることもできる。クラス外からこれらを参照するとき、クラス名の修飾によりスコープを明示する。また、当該クラスのメソッドの内部でこれらを参照するとき、通例クラス名の修飾によりスコープを明示することで、メソッドの仮引数やローカル変数、あるいはローカル関数などと名前が衝突した場合にも区別できるようになっている。
クラススコープをもたない言語の場合でも、ファイルスコープを用いることで同様の機構を実現できる場合がある。
なお、オブジェクト指向言語は通例カプセル化のため、フィールドやメソッドについてアクセス可能な範囲(可視性)を指定できるアクセス修飾子(英語版)の機能を備えているが、アクセス修飾子によるアクセス制限とスコープの概念は関連があるものの別物である。また、基底クラスで定義されたフィールドやメソッドが派生クラスからもアクセス可能な場合は、それらを参照する際に、C++では基底クラス名を用いた修飾によりスコープを明示するが、JavaやC#ではsuperやbaseといったキーワードによるエイリアスを使う。