Homoikonizität

Homoikonizität

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 grundlegenden Datenstrukturen sind Listen, Symbole, Zahlen, Strings und diese haben eine einfache externe Repräsentation als S-Expressions. Lisp-Programme werden ebenfalls aus diesen Datentypen gebildet. Es ergibt sich somit in Lisp auf natürliche Weise (mit den eingebauten Funktionen für diese Datentypen) die Möglichkeit, Programmcode zu manipulieren.

Als homoikonisch kann man die meisten Sprachen der Lisp-Familie betrachten, weiterhin Prolog, Smalltalk, REBOL, SNOBOL, XSLT, TRAC, Tcl, Io, Joy, PostScript, Clojure und V.

In Systemen mit Von-Neumann-Architektur, zu denen heute die weit überwiegende Mehrzahl gehört, ist der Maschinen- bzw. Assemblercode 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

Quellen

  1. Douglas McIlroy (1960) Macro Instruction Extensions of Compiler Languages
  2. Calvin Mooers and L. Peter Deutsch (1965) TRAC, A Text-Handling Language
  3. Alan Kay (1969) The Reactive Engine, PhD thesis (Accessed 20061229)

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • 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,… …   Deutsch Wikipedia

  • Lisp — Paradigmen: multiparadigmatisch: funktional, prozedural; manche Dialekte außerdem modular, objektorientiert, reflexiv Erscheinungsjahr: 1958 Designer …   Deutsch Wikipedia

  • List Processing — LISP Paradigmen: multiparadigmatisch: funktional, prozedural; manche Dialekte außerdem modular, objektorientiert, reflexiv Erscheinungsjahr: 1958 Designer …   Deutsch Wikipedia

  • LISP — Paradigmen: multiparadigmatisch: funktional, prozedural; manche Dialekte außerdem modular, objektorientiert, reflexiv Erscheinungsjahr: 1958 Designer: John McCarthy …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”