Ten artykuł dotyczy klasy języków programowania. Metoda na zmniejszanie złożoności obliczeniowej algorytmów o podobnej nazwie opisana jest w artykule Programowanie dynamiczne.

Dynamiczny język programowania jest terminem używanym w informatyce oznaczającym klasę języków programowania wysokiego poziomu, które podczas działania programu wykonują pewne operacje przeprowadzanych w innych językach na etapie kompilacji. Do tych działań zalicza się na przykład rozszerzanie programu przez dodawanie nowego kodu, przez rozszerzanie obiektów i definicji, albo przez zmianę typów danych – wszystko podczas działania programu. Zachowania takie można emulować w językach programowania o wystarczającej złożoności, jednak języki dynamiczne mają wbudowane konstrukcje umożliwiające ich bezpośrednie wykorzystanie.

Języki dynamiczne i dynamiczne typowanie nie są tożsamymi pojęciami, a dynamiczny język programowania nie musi zawsze posiadać mechanizmu dynamicznej zmiany typów, chociaż w praktyce wiele z takich języków obsługuje tę właściwość.