In computer programming, homoiconicity (from the Greek words homo- meaning "the
same" and icon meaning "representation") is a property of some programming
languages. A language is homoiconic if a program written in it can be
manipulated as data using the language. The program's internal representation
can thus be inferred just by reading the program itself. This property is often
summarized by saying that the language treats code as data.