Homoiconicité

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

En programmation informatique, l'homoiconicité (de homo- : semblable, et icône : image) est une propriété de certains langages dans lesquels la principale représentation des programmes est aussi une structure de données d'un type primitif du langage.

Les langages homoiconiques rassemblent la plupart des membres de la famille Lisp mais aussi APL, Prolog, REBOL, SNOBOL, XSLT, TRAC, Tcl, Io, Julia et Red.

Cette propriété s'apparente à la réflexion dans les langages informatiques.

Avantages

Cette propriété permet de développer des programmes évolutifs, susceptibles de se développer ou de s'optimiser par eux-mêmes[réf. nécessaire]. Ce genre de programmes se rencontre par exemple en intelligence artificielle et pour la simulation de systèmes sociaux, de système vivants, ou de robots.

Il devient également plus simple d'étendre le langage, puisque les données représentant du code peuvent être échangées entre le niveau de base et le niveau meta du langage[réf. nécessaire].

  • icône décorative Portail de la programmation informatique