Most dynamic languages are also [[dynamic typing|dynamically typed]], but not all are. Dynamic languages can be (but not always) frequently referred to as "[[scripting language]]s", though that article narrowly refers to languages specific to a given environment.
==Limitations and ambiguity in the definition==
The definition of a dynamic language is ambiguous because it attempts to make distinctions between ''code'' and ''data'' as well as between ''compilation'' and ''runtime'' which are not universal. [[Virtual machine]]s, [[just-in-time compilation]], and the ability of many programming languages on some systems to directly modify [[machine code]] make the distinction abstract. In general, the assertion that a language is dynamic is more an assertion about the ease of use of dynamic features than it is a clear statement of the capabilities of the language.