Homoikoniczność
Homoikoniczność (łac. homo - ten sam, icon - przedstawienie) - to cecha języków programowania, w których reprezentacja programu jest jednocześnie podstawową strukturą danych wykorzystywaną w języku.
Wykorzystanie i zalety
Zaletą homoikoniczności jest prostsze rozszerzenie języka o nowe koncepcje programistyczne, ponieważ dane reprezentujące kod, mogą być przekazywane między meta a podstawowymi układami programu. Homoikoniczność pozwala także na pisanie programów, które piszą programy.
Przykłady
Języki programowania uważane za homoikoniczne to rodzina Lisp a także Nemerle, Curl, REBOL, SNOBOL, XSLT, XQuery, TRAC, Tcl, Io, Ioke, Joy, Factor, Pico, PostScript, Prolog, R, Mathematica oraz V.
W systemie architektury von Neumanna cechę tę ma również surowy kod maszynowy a istotą typu danych są bajty w pamięci.