- Homoikonisch
-
Homoikonizität (Selbst-Abbildbarkeit, oder Selbst-Repräsentierbarkeit) ist die Eigenschaft von Programmiersprachen, dass Programme gleichzeitig Datenstrukturen derselben Sprache sind. In solchen Sprachen ist es einfach, Programme zu schreiben, die Programme schreiben.
Ein Beispiel einer homoikonischen Programmiersprache ist LISP: Die grundlegende Datenstruktur ist die Liste. LISP-Programme werden ebenfalls als Listen dargestellt. Es ergibt sich somit in LISP auf natürliche Weise die Möglichkeit, Programmcode zu manipulieren.
Als homoikonisch kann man die meisten Sprachen der LISP-Familie betrachten, sodann Prolog, Smalltalk, REBOL, SNOBOL, XSLT, TRAC, Tcl, Io, Joy, PostScript and V.
In Systemen mit Von-Neumann-Architektur, zu denen heute die weit überwiegende Mehrzahl gehört, ist der Maschinencode ebenfalls homoikonisch, wobei Sprache und Datentyp Bytes sind.
Eingeführt wurde der Begriff von Douglas McIlroy 1960 in dem Dokument Macro Instruction Extensions of Compiler Languages.[1] 1965 verwendet ihn ein Dokument über die Textverarbeitungssprache TRAC. [2] Alan Kay benutzte den Begriff 1969 in seiner Dissertationsschrift.[3]
Weblinks
- Begriffsdefinition (englisch) in WardsWiki
Quellen
- ↑ Douglas McIlroy (1960) Macro Instruction Extensions of Compiler Languages
- ↑ Calvin Mooers and L. Peter Deutsch (1965) TRAC, A Text-Handling Language
- ↑ Alan Kay (1969) The Reactive Engine, PhD thesis (Accessed 20061229)
Wikimedia Foundation.