Funkcje wyższego rzędu Erik Meijer i Peter Drayton zwracają uwagę, że każdy język programowania, w którym możliwe jest ładowanie kodu wykonywalnego podczas pracy programu jest w pewnym sensie zdolny do wykonywania ewaluacji, nawet jeśli kod ten jest w postaci dynamicznie ładowanej biblioteki współdzielonej lub maszynowej formy zrozumiałej przez procesor. Sugerują oni, że tak naprawdę dopiero obecność funkcji wyższego rzędu jest wyznacznikiem pozwalającym nazwać język dynamicznym, a niektóre z języków używają konstrukcji eval tylko jako ubogiej namiastki funkcji wyższego rzędu
Zmiana obiektów podczas pracy W języku dynamicznym typy danych lub system obiektów mogą być modyfikowane podczas działania programu. Może to oznaczać tworzenie nowych typów i obiektów o właściwościach wynikających z wyników umieszczonych w programie wyrażeń, albo spowodowanych użyciem domieszek istniejących obiektów i typów. Zmiana obiektów ma również miejsce podczas procesu dziedziczenia lub drzewiastego odwzorowywania typów, czyli zmiany zachowania zdefiniowanych już typów danych (ze szczególnym uwzględnieniem wywoływanych metod).
Programowanie funkcyjne Koncepcje znane z programowania funkcyjnego zaimplementowano w wielu dynamicznych językach programowania.