Late binding

This makes the compilation process more resistant to version conflicts, in which the class's v-table may be accidentally modified.

(This is not a concern in just-in-time compiled platforms such as .NET or Java, because the v-table is created at runtime by the virtual machine against the libraries as they are being loaded into the running application.

The term was widely used to describe calling conventions in languages like Lisp, though usually with negative connotations about performance.

Alan Kay once said, "OOP to me means only messaging, local retention, and protection and hiding of state-process, and extreme late-binding of all things.

"[6] In the early to mid-1990s, Microsoft heavily promoted its COM standard as a binary interface between different OOP programming languages.

COM programming equally promoted early and late binding, with many languages supporting both at the syntax level.

In 2000, Alex Martelli coined the term "duck typing" to refer to a similar concept, but with a different emphasis.

Also like COM and Java, the Common Language Runtime provides reflection APIs that can make late binding calls.

Visual Basic uses them whenever the variable is of type Object and the compiler directive "Option Strict Off" is in force.

Currently, it is popular to use the term late binding in Java programming as a synonym for dynamic dispatch.

[9] When using late binding the timestamp check is not performed, and the stored procedure is executed via an anonymous PL/SQL block.

Under most implementations, the correct method address must be looked up by name with each call, requiring relatively expensive dictionary search and possibly overload resolution logic.

Late binding may prevent forms of static analysis needed by an integrated development environment (IDE).