レキシカルスコープ 【lexical scope】 字句スコープ / 静的スコープ / static scope

概要

レキシカルスコープ(lexical scope)とは、プログラム中の変数などの有効範囲(スコープ)の決定方式の一つで、ソースコードにおけるブロックなどの包含関係からスコープを決定するもの。多くのプログラミング言語で採用されている。

プログラム中で宣言した定数変数などのシンボルがコード中で参照できる範囲のことを「スコープ」(scope)という。例えば、多くの言語では関数の中で宣言された変数はその関数の中からしか参照できず(ローカルスコープ)、他の箇所での参照や代入おうとするとエラーになる。

レキシカルスコープはブロック関数などが入れ子状に定義されているとき、ソースコード字句の並びに基づいてスコープを決定する方式で、プログラムの解析時に静的スコープが定まる。この場合、例えば関数の中で他の関数を定義した場合、親関数(外側の関数)の中で定義した変数などを子関数(内側の関数)から参照することができる。

一方、実行時関数などの呼び出し側、呼び出され側という関係性に基づいて動的スコープを決定する方式を「動的スコープ」「ダイナミックスコープ」(dynamic scope)という。この場合、ある関数が別の関数を呼び出した際、呼び出された側から呼び出した側で定義された変数などを参照することができる。LISPなどで採用されている。

(2023.11.13更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる