束縛 (コンピュータ)
スコープに着目して、名前束縛を分類することがある。静的スコープにおいては、名前束縛はプログラム実行前に行われる。これを静的束縛 (static binding) もしくは早期束縛 (early binding) と呼ぶ。動的スコープにおいては、名前束縛はプログラム実行中に行われる。これを動的束縛 (dynamic binding) もしくは遅延束縛 (late binding) と呼ぶ。
C++やJavaなどの静的型付けのオブジェクト指向言語における、仮想関数テーブルを利用した動的ディスパッチ(英語版)の意味で動的束縛や遅延束縛といった言葉が使われることもある。しかし、仮想関数テーブルの構造はコンパイル時に静的に確定するものであり、これは静的束縛/事前束縛の一種である。
Pythonなどの動的プログラミング言語や、C#/VB.NETなどの動的型付けの機能もサポートする静的型付け言語において、動的束縛や遅延束縛という用語が使われることもある。この動的束縛は、スコープによる分類とは無関係である。
コンパイルされたプログラムはメモリ上でリロケータブル(再配置可能)であることが多い。従って、メモリ参照は基本的に動的束縛である。各変数や関数への参照は、何らかのベースアドレスからのオフセットで示され、実行時までそのアドレスは確定できない。これは細かい区別であるが、プログラミング言語レベルでの束縛とマシンレベルのそれとは異なる。