2.2 変数のスコープ

  2.なぜスコープが必要なのか
 スコープルールは、プログラムにおける情報隠蔽に関わる概念です。

 例えば、すべての識別子がプログラム全体に渡って有効であるようなスコープルールの場合、aという識別子は、プログラム全域に渡って一通りにしか使えなくなります。これでは大変不便であり、また、本来異なるべき識別子に、同じ名前を利用した場合には、予期せぬ変数への操作が起こり、実行時エラーの原因となります。

 基本的な方針として、スコープをできるだけ小さく抑えておき、ユーザが仮定している利用可能領域(プログラム領域)内でのみ、その利用を許すことにより、その領域内では他の領域とは無関係に、識別子を選択することが可能となります。

 もし仮に、全ての変数が大域的スコープを持てば、プログラム中のある部分に生じた誤りの修正が、他の部分に影響を与え、新しい誤りを引き起こす可能性があります。適切に設定されたスコープのある変数を用いることにより、変数の影響を関数内や文ブロック内に限定することが出来るため、プログラムの変更やデバッグに伴う修正の後、新たなバグの混入といった「副作用」を生じさせる可能性を、極力抑えることが可能となります。