Un lenguaje de programación es dinámicamente tipado si una variable puede tomar valores de distintos tipos.
La mayoría de lenguajes de tipado dinámico son lenguajes interpretados, como Python o Ruby.
Un lenguaje que no es dinámicamente tipado se dice que es de tipado estático, o estáticamente tipado.
Esta separación se suele confundir con la diferencia entre lenguajes fuertemente tipados y lenguajes débilmente o no tipados.
Esta característica estuvo en el lenguaje de programación "SmallTalk".