Skip to content

用語集

Binding(束縛)

スコープ内で値が代入/束縛されること。

Binding type(束縛の種類)

束縛の分類。インポートされた値、代入された値(let/const/var)、エクスポートされた値、関数/クラス宣言、関数/メソッドの引数など。

Scope(スコープ)

束縛が存在しうるブロック。ブロックとは {} で囲れたコード領域(クラス、関数、メソッド、コールバック、if/else など)。スコープには階層があり、親が子を持ち(常にではない)、子は親に属します。同名の束縛は子が親をシャドウします。

Scope flags(スコープフラグ)

現在のスコープについてのメタデータ(継承階層のスコープではなく):関数、コンストラクタ、トップレベル(プログラム)など。

Symbol(シンボル)

束縛を包むラッパで、束縛された変数がソース内で使われる/呼ばれる参照をすべて持ちます。シンボルは走査順に ID が振られ、各参照はその ID でシンボルを指します。

Symbol flags(シンボルフラグ)

シンボル/束縛に関するメタデータ。

Reference(参照)

シンボル参照とはシンボル(ひいては束縛)の使用箇所で、走査順に ID が振られます。各参照は読み取り・書き込み・その両方としてフラグされます。

Span(スパン)

ソーステキスト内におけるノードの開始/終了オフセット。