In computer programming,
homoiconicity (from the
Greek words
homo meaning
the same and
icon meaning
representation) is a property of some
programming languages in which the
program structure is similar to its
syntax, and therefore the program's internal representation can be inferred by reading the text's layout. If a language is homoiconic, it means that the language text has the same structure as its
abstract syntax tree (i.e. the AST and the syntax are
isomorphic). This allows all code in the language to be accessed and transformed as data, using the same representation.