Name Binding - Binding Time

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.List list) { list.add("bar"); }

List 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 you’ve got, people are gonna want to know what’s in the book.”
    —Alan Jay Lerner (1918–1986)

    “There is no passion more dominant and instinctive in the human spirit than the need of the country to which one belongs.... The time comes when nothing in the world is so important as a breath of one’s own particular climate. If it were one’s last penny it would be used for that return passage.”
    —Gertrude Stein (1874–1946)