name binding is the association of entities (data and/or code) with identifiers. An identifier bound to an object is said to reference that object.
Binding is intimately connected with scoping, as scope determines which names bind to which objects – at which locations in the program code (lexically) and in which one of the possible execution paths (temporally).
What is the difference between name binding and scoping?
Is it correct that
- name binding is to create a new binding between a name and an entity,
- scoping is to find out which entity a name used somewhere in a program has been bound to?
Are there relations between static and dynamic bindings, and static and dynamic scopings?
For a name,
are its binding and scoping always either both dynamic or both static? If not, are they mostly?
For binding and scoping, does one being static or dynamic imply the other being static or dynamic?
p.s. I tried to look up name binding in my books, but didn't find them. Maybe the terminology is different in the books.