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:
“[Governments] true strength consists in leaving individuals and states as much as possible to themselvesin making itself felt, not in its power, but in its beneficence, not in its control, but in its protection, not in binding the states more closely to the center, but leaving each to move unobstructed in its proper orbit.”
—Andrew Jackson (17671845)
“To read a newspaper for the first time is like coming into a film that has been on for an hour. Newspapers are like serials. To understand them you have to take knowledge to them; the knowledge that serves best is the knowledge provided by the newspaper itself.”
—V.S. (Vidiadhar Surajprasad)