nowe rodzaje pętli bądź innych konstrukcji sterujących), ale także zorientowane pod kątem wyrażania konkretnych rozwiązań problemów języki dziedzinowe.
Symboliczny paradygmat programowania zawdzięcza powstanie językowi Lisp, w którym wyrażenia kodu źródłowego mogą być interpretowane jako formy przeznaczone do przeliczenia w toku uruchamiania programu bądź jako formy zwykłe, czyli dane, na których program operuje. Programista jest w stanie wybierać, w jakich warunkach dany fragment kodu będzie potraktowany jak dane, a w jakich realizowany. Wynika to z operacji leżących u podstaw interpretacyjnych tego języka: eval (wartościowanie przekazanych danych, traktując je jak kod źródłowy) i quote (wyłączenie wartościowania fragmentu kodu źródłowego i potraktowanie go jak dane).
Przykładem elementów symbolicznych w innych językach programowania mogą być znane z języka C makra preprocesora lub konstrukcje typu eval w skryptowych językach powłokowych bądź nowoczesnych językach wieloparadygmatowych, takich jak Python czy Ruby.