「スコープ (プログラミング)」の版間の差分

削除された内容 追加された内容
Scopemk (会話 | 投稿記録)
編集の要約なし
m Scopemk (会話) による版を 202.214.30.9 による版へ巻き戻し
1行目:
#'''スコープ'''('''Scope''')とは、望遠鏡や顕微鏡などの倍率などを変えて一部分を見る器具の名称である。
'''SCOPE'''は、関西を中心に活動するジャパニーズ・[[プログレッシブ・ロック]]・[[バンド (音楽)|バンド]]。
##[[望遠鏡]](Tele'''scope''')
##*[[照準器|照準眼鏡]]('''Telescopic''' sight - 「望遠鏡型照準器」の意)
##[[顕微鏡]](Micro'''scope''')
#[[プロジェクトマネジメント]]において、[[プロジェクト]]の範囲のこと。
#[[プログラミング (コンピュータ)|プログラミング]]において、特定の名前で参照できる範囲のこと。本項で詳述。
 
----
[[プログラミング (コンピュータ)|プログラミング]]での'''スコープ'''とは、ある[[変数 (プログラミング)|変数]]や[[関数 (プログラミング)|関数]]が特定の名前で参照される範囲のこと。ある範囲の外に置いた変数等は、通常、その名前だけでは参照できない。このときこれらの変数はスコープ外である、「見えない」といわれる。
 
プログラミングでは、予期しない誤作動を避けるためにも、それぞれの作業段階で必要のない名前はできるだけ参照されないようにすることが望ましい(大域変数の危険性)。適切なスコープの判断は、仕様に沿ったプログラムを構成する上で重要である。
== ディスコグラフィー ==
=== スタジオ・アルバム ===
*SCOPE/SACRIFICE サクリファイス(1997年)
 マーキー/ベル・アンティークレーベルより発売された記念すべきファーストアルバム。
*SCOPE/資本主義の風景 The scenery of the capitalism(2003年)
 ナショナリズムと資本主義が生み出す社会悪を批判した問題の作品。
*Tribute to The Moody Blues/Higher and Higher(2006年)
 ムーディーブルースのトリビュート・アルバムに参加。
*SCOPE/THEME OF UNBOY(2007年)
 日本現代美術を代表する一人として世界的な注目を集めている美術家・椿昇氏の作品UNBOY・地雷除去ロボット(国連参加作品)を題材に寺澤裕久が作曲。
*SCOPE/MEDITATION UNDER FLYING GUARDIAN GOD 鬼神冥想図(2010年)
 三つのスートリーが微妙に絡み合い一つの世界を築き上げるスコープ待望のニューアルバム
 ノイズ、前衛、環境音楽等を取り入れロックの枠を超えるアバンギャルドなプログレ・サウンド
 
== 外部リンクスコープの種類 ==
=== 構文範囲からの分類 ===
*[http://www.hibiki-web.co.jp/scope 公式サイト]
; 大域スコープ (global scope)
: プログラムの「全体」から見えるスコープのこと。このスコープに属する変数は大域変数といわれる。[[BASIC]]のような単純な言語では大域スコープしか存在しない場合がある。
:
; ファイルスコープ (file scope)
: 大域スコープと似ているが、プログラムを記述したファイルの内側でのみ参照できるスコープ。プログラムが複数の[[ファイル (コンピュータ)|ファイル]]から構成される場合は他のファイルから参照することはできない。
:
; ローカルスコープ (local scope)
: ある関数やブロックの範囲内に限定されたスコープのこと。何を持って範囲を与えるかは言語により様々だが、一般に[[ネスティング|入れ子]]のローカルスコープは外側を参照できるのが普通である。このとき兄弟関係にあるスコープは見えない。変数宣言が必要な言語の場合は宣言文以降にスコープが制限される場合が多い。[[Python]]のように外側のスコープがリードオンリーになるケースもある。
:
; インスタンススコープ (instance scope)
: クラスベースの[[オブジェクト指向言語]]で、各インスタンス毎に割り当てられた変数が所属メソッド(メンバ関数)からのみ参照されるスコープのこと。いわゆる[[カプセル化]]はこれを指す。保護されない変数の場合は、クラス定義が見えていてオブジェクトにアクセスできる場合は直接参照できる。[[C言語]]の[[構造体]]参照なども一種のインスタンススコープである。
:
; クラススコープ (class scope)
: クラスベースのオブジェクト指向言語で、あるクラスの定義全体から参照できるスコープ。インスタンススコープと異なり変数が共有されるので、ある種の制限された大域スコープと考えることができる。クラススコープをもたない言語の場合でも、ファイルスコープを用いることで同様の機構を実現できる場合がある。ある特定のクラスだけなのか、派生クラスまでも含むのかによってそれぞれクラスインスタンススコープ/クラススコープとさらに細分化する。
 
=== スコープ導入からの分類 ===
{{DEFAULTSORT:すこーぷ}}
; [[静的スコープ]] (static scope)
[[Category:日本のバンド]]
: 構文スコープ ('''lexical scope''')。構文上で決定できるスコープのみを使用する方法。[[コンパイラ]]型の言語ではほとんどが静的スコープを採用している。
[[Category:プログレッシブ・ロック・バンド]]
:
; [[動的スコープ]] (dynamic scope)
: 静的スコープに加えて、実行時の関数の親子関係で名前を導入するスコープ。関数が呼び出し元で展開されたかのようなスコープが構成される。プログラムの構文的な構造だけからは参照範囲を決定できないため、おおむね[[インタプリタ]]で使用される。
:
; [[名前空間]] (namespace)
: 厳密にいえば名前空間自体はスコープではないが、スコープを導入する機構であるためここに記述する。名前空間はある名前の集合を定義したもので、任意のタイミングで名前空間を導入し、定義された名前を参照可能にすることができる。名前空間では持続範囲を指定できるため、外部で必要のない名前の拡散を避けることもできる。
: 名前空間自体も一種のスコープを持ち、名前空間の名前によって参照される。この視点では、上記のファイルスコープやローカルスコープも暗黙の名前空間でスコープを構成していると考えられる。ただし無名であり、外部に導入できない名前空間である。
 
==関連項目==
[[en:scope]]
*[[fr:scope名前空間]]
*[[ブロック (プログラミング)|ブロック]]
 
[[Category:プログラミング|すこふ]]
[[Category:プログラミング言語の構文|すこふ]]
 
[[fr:Portée (informatique)]]
[[en:Scope (programming)]]
[[it: Visibilità]]
[[nl:Variabelenbereik]]