Binding Time
The binding of names before the program is run is called static (also "early"); bindings performed as the program runs are dynamic (also "late" or "virtual").
An example of a static binding is a direct C function call: the function referenced by the identifier cannot change at runtime.
But an example of dynamic binding is dynamic dispatch, as in a C++ virtual method call. Since the specific type of a polymorphic object is not known before runtime (in general), the executed function is dynamically bound. Take, for example, the following Java code:
public void foo(java.util.ListList is an interface, so list must refer to a subtype of it. Is it a reference to a LinkedList, an ArrayList, or some other subtype of List? The actual method referenced by add is not known until runtime. In a language like C, the actual function is known.
Read more about this topic: Name Binding
Famous quotes containing the words binding and/or time:
“With a binding like youve got, people are gonna want to know whats in the book.”
—Alan Jay Lerner (19181986)
“A man was to live in that egg-shell day and night, a mile from the shore.... Think of making your bed thus in the crest of a breaker! To have the waves, like a pack of hungry wolves, eying you always, night and day, and from time to time making a spring at you, almost sure to have you at last.”
—Henry David Thoreau (18171862)