Typing discipline: Dynamic

Dynamic typing implies that major part of type checking is done during run-time, though some checks (like the check for syntactic validity of the code) are still done during compile-time. Types are associated with values (as opposed to variables).

The runtime checks use not only the code itself but also any information available during runtime and thus can be more complicated. The drawback of this concept is that runtime checks are applied only to one particular program execution, and are done independently each time the program is executed.

Dynamic typing allows more flexibility at the expense of greater probability of type errors. Unit testing is particularly important for development in languages with dynamic typing, since it is the only way to detect type errors in rarely used code paths.

Dynamic typing is the opposite of static typing.

Programming languages that uses this typing discipline: