1. A system comprising: a processor and a memory including a compiler configured to cause the processor to: determine if a source code statement in a programming language using semantics for a statically bound language includes an expression or subexpression associated with an operation includes a second type indicating that binding occurs at runtime; defer binding of the operation to runtime when the operation includes the second type indicating binding occurs at runtime, wherein binding of the operation is based on a compile time type of the expression associated with the operation, wherein the expression comprises a subexpression of a first type and wherein binding of the operation is based on a runtime type of a value of a subexpression of the second type; examining a universe of binding candidates for the second type indicating that binding occurs at runtime; determining if the universe of binding candidates is a closed set; generating an error list of dynamic binding errors at compile time when the universe is a closed set; and deferring generation of the error list of binding errors to runtime when the universe is not a closed set.