One definition of a dynamic programming language [L1 ] proposes that any programming language that permits one to write applications that can change the structure of the program while it is running is a dynamic programming language.
[Be sure to mention David's "Dynamic Languages-ready for the next challenges" [L2 ].]