Homonicity

from Wikipedia, the free encyclopedia

Homoiconicity (i.e. self-representability or self-representability ) is the property of programming languages that programs are at the same time data structures of the same language. In such languages, it is easy to write programs that programs write.

An example of a homo-iconic programming language is Lisp : the basic data structures are lists , symbols, numbers, strings and these have a simple external representation as S-expressions. Lisp programs are also formed from these data types. In Lisp there is therefore the natural possibility (with the built-in functions for these data types) to manipulate program code.

Most languages ​​of the Lisp family (e.g. Clojure ), Prolog , REBOL , SNOBOL , XSLT , TRAC, Tcl , Io , Joy , Julia , PostScript , R , V and Elixir can be regarded as homoiconic .

The term was introduced by Douglas McIlroy in 1960 in the Macro Instruction Extensions of Compiler Languages ​​document . In 1965 a document on the word processing language TRAC uses it. Alan Kay used the term in his 1969 dissertation.

See also

Web links

Individual evidence

  1. ^ Douglas McIlroy : Macro Instruction Extensions of Compiler Languages . 1960, doi: 10.1145 / 367177.367223
  2. Calvin Mooers , L. Peter Deutsch : TRAC, A Text-Handling Language . 1965, doi: 10.1145 / 800197.806048
  3. ^ Alan Kay : The Reactive Engine . 1969, PhD thesis; Retrieved December 9, 2006