静的スコープ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
静的スコープ(せいてき- static scope)とは、プログラミング言語におけるスコープの一種。構文構造のみから決定できるため構文スコープ (こうぶん- lexical scope)ともいう。
ブロックなどの構造を持つプログラミング言語では、あるブロックの内側で定義された変数はそのブロックの外側から操作することができないのが普通である。以下の疑似コードでは:
A { var x; } B { var x; // A内のxとは別物 C { var y; // Cの内側からしか見えない } }
ブロックA
の変数x
とブロックB
の変数x
は同じ名前をもつがブロックが異なる為別のものである。またB
の中ではC
のようにさらに内側の変数を見ることができず、逆にC
からはB
のx
とC
のy
が見える。
近代的なプログラミング言語では、コードレベルのブロックだけでなく、名前空間を導入してスコープを制限する機能が普及しつつある。
静的スコープはプログラミングの安全性や、最適化が行いやすいなどの理由で構造化言語を中心に広く採用されている。静的スコープでないものの代表は動的スコープである。