Un lenguaje de programación dinámico es un lenguaje de alto nivel que realiza en tiempo de ejecución muchas acciones que otros lenguajes normalmente llevan a cabo en tiempo de compilación.
Estas acciones incluyen cosas como agregar y evaluar cierto código, modificar el sistema de tipo de datos, etc.
JavaScript es un ejemplo de este.
Los lenguajes dinámicos son normalmente interpretados.
Una desventaja de los lenguajes dinámicos es el soporte limitado que existe para ellos en las herramientas de desarrollo.
La mayoría de los lenguajes dinámicos no usan declaraciones claras y esto complica significativamente ciertos aspectos como la facilidad de autocompletar algún código y la refactorización.
La mayoría de estos lenguajes son considerados también como lenguajes de script.