Jede andere Verwendung desselben Bezeichners im Programmtext ist ein angewandtes Auftreten (applied occurrence). In einem sinnvollen Programm ist jedes solche angewandte Auftreten an ein passendes definierendes Auftreten gebunden, also ihm zugeordnet; welches das ist, bestimmt sich aus der Schachtelung der Gültigkeitsbereiche, und es ist Aufgabe der "Namensanalyse" eines Compilers, diese Zuordnung herauszufinden.
Wir sprechen bei dieser Art von Bindung von Namensbindung. Ein so gebundener Bezeichner kann ohne Änderung der Bedeutung des Programms konsistent (ohne Kollisionen!) umbenannt werden.
Die eben besprochene Namensbindung hat mit dem statischen Programmtext zu tun und legt teilweise seine Bedeutung fest. Zur Laufzeit des Programms kommen andere Vorgänge hinzu, die traditionell (leider) auch "Bindung" heißen:
Ein Spezialfall davon ist die Umgebungsbindung: einer lokal deklarierten Prozedur oder Funktion wird das aktuelle Aktivierungsobjekt als unmittelbare Umgebung zugeordnet.