In computer programming, homoiconicity (from the Greek words homo meaning the same and icon meaning representation) is a property of some programming languages in which the program structure is similar to its syntax, and therefore the program's internal representation can be inferred by reading the text's layout. If a language has homoiconicity, it means that the language text has the same structure as its abstract syntax tree (i.e. the AST and the syntax are isomorphic).
In a homoiconic language the primary representation of programs is also a data structure in a primitive type of the language itself. This makes metaprogramming easier than in a language without this property, since code can be treated as data: reflection in the language (examining the program's entities at runtime)
depends on a single, homogeneous structure, and it does not have to
handle several different structures that would appear in a complex
syntax. To put that another way, homoiconicity is where a program's
source code is written as a basic data structure that the programming
language knows how to access.
A typical, commonly cited example is the programming language Lisp, which was created to be easy for lists manipulation and where the structure is given by S-expressions that take the form of nested
lists. Lisp programs are written in the form of lists; the result is
that the program can access its own functions and procedures while
running, and programmatically reprogram itself on the fly. Homoiconic
languages typically include full support of syntactic macros allowing the programmer to express program transformations in a concise way.
Subscribe to:
Post Comments (Atom)
Dobro
Dobro is an American brand of resonator guitars owned by Gibson and manufactured by its subsidiary Epiphone . The term "dobro&quo...
-
Nureongi (누렁이) and Hwangu (황구; 黃狗) are Korean terms meaning "Yellow Dog" used to refer to tannish mongrel or landrace of dog in...
-
Three portions of the post-creole continuum : acrolect ( linguistics ) The variety of speech that is considered the standard form. m...
No comments:
Post a Comment