Homonicity
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
- Definition of terms in WardsWiki (English)
Individual evidence
- ^ Douglas McIlroy : Macro Instruction Extensions of Compiler Languages . 1960, doi: 10.1145 / 367177.367223
- ↑ Calvin Mooers , L. Peter Deutsch : TRAC, A Text-Handling Language . 1965, doi: 10.1145 / 800197.806048
- ^ Alan Kay : The Reactive Engine . 1969, PhD thesis; Retrieved December 9, 2006