「動的スコープ」の版間の差分

削除された内容 追加された内容
いけ2 (会話 | 投稿記録)
m編集の要約なし
いけ2 (会話 | 投稿記録)
m編集の要約なし
1行目:
'''動的スコープ'''、'''ダイナミックスコープ'''('''dynamic scope''')とは、[[プログラミング言語]]における[[スコープ]]の一種。
 
動的スコープは[[静的スコープ]](参照範囲は[[ブロック (プログラミング)|ブロック]]構文構造内側みから決定スコープ)に加え、実行時の親子関係の子側(呼び出された側)から親側(呼び出し側)のスコープを参照できるスコープである。このとき参照されるのは、親子関係を親側に辿り、より近い[[ブロック (プログラミング)|ブロック]]にある変数である。以下の疑似コードでは:
 
funcA() {
22行目:
 
このとき<code>funcA</code>内で[[変数 (プログラミング)|変数]]<code>z</code>を利用していて、<code>funcB</code>(または他の<code>z</code>の見えない[[関数 (プログラミング)|関数]])から呼び出したときはエラーとなる。
 
 
動的スコープの代表的な言語は古典[[LISP]]や[[Emacs Lisp]]、[[LOGO]]、[[Perl]]のlocal変数など。