Auto-hébergement - Définition et Explications

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.

L'auto-hébergement désigne l'utilisation d'un programme informatique, partie d'une chaîne d'outils ou d'un système d'exploitation pour produire de nouvelles versions dudit programme. Par exemple, un compilateur qui peut compiler son propre code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau,...). Le logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil...) auto-hébergé est commun sur les ordinateurs personnels et les systèmes plus larges.
D'autre programmes qui sont typiquement auto-hébergés sont les noyaux, les assembleurs et les shells.

Si un système est si neuf qu'aucun logiciel n'a été écrit pour lui, alors on développe le logiciel sur un autre système auto-hébergé et placé dans une mémoire informatique (Depuis les débuts de l'électricité les phénomènes électriques étant généralement très rapides à l'échelle humaine, les ingénieurs ont cherché à conserver...) que le nouveau système peut lire.

Le développement continue de cette manière jusqu'à ce que le nouveau système peut héberger son propre développement.
Par exemple, le développement du système d'exploitation Linux (Au sens strict, Linux est le nom du noyau de système d'exploitation libre, multitâche, multiplate-forme et multi-utilisateur de type UNIX créé par Linus Torvalds, souvent désigné comme le...) a été initialement hébergé sur le système d'exploitation Minix (Minix est un système d'exploitation, clone d'UNIX, basé sur un micro-noyau créé par un professeur nommé Andrew S. Tanenbaum à des fins pédagogiques, volontairement réduit afin qu'il puisse être compris...).
Écrire de nouveaux outils de développement logiciel sans partir d'un système existant ne se fait plus aujourd'hui.

Plusieurs langages de programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel...) sont auto-hébergés, dans le sens (SENS (Strategies for Engineered Negligible Senescence) est un projet scientifique qui a pour but l'extension radicale de l'espérance de vie humaine. Par...) qu'un compilateur pour ce langage, écrit dans le même langage, est disponible. Pour un nouveau système, le premier compilateur d'un nouveau langage de programmation (Un langage de programmation est un langage informatique, permettant à un être humain d'écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code source subit ensuite une...) doit être écrit dans un autre langage (dans de rares cas, le langage machine). Les langages auto-hébergés incluent le Lisp, Forth, C, Pascal, Modula-2, Oberon, Smalltalk, OCaml, et FreeBASIC.

La confiance aveugle en des outils de programmation auto-hébergés est un risque potentiel de sécurité comme démontré par le hack (Le hack est une manipulation d'un système, de l'anglais to hack, tailler, couper quelque chose à l'aide d'un outil. Par analogie, séparer des blocs logiques, retirer de l'étude tout ce qui n'est pas nécessaire, et...) de Thompson.

Histoire

Le premier compilateur auto-hébergé (si l'on exclut les assembleurs) a été écrit pour le Lisp par Hart et Levin au Massachusetts Institute of Technology (MIT) in 1962. (lien) . Puisque les interpréteurs Lisp, mais non les compilateurs, existaient auparavant, ils utilisaient une méthode originale pour compiler leur compilateur. Le compilateur, comme tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) programme Lisp, pouvait être exécuté dans un interpréteur (En informatique, un interprète (parfois appelé, à tort, « interpréteur » par mauvaise traduction de l'anglais) est un outil ayant pour tâche...). Donc, il pouvait simplement exécuter le compilateur dans l'interpréteur lui donnant ensuite, son propre code source à compiler.

Le compilateur tel qu'il existe sur la bande du compilateur standard est un programme en langage machine qui était obtenu en faisant que la définition (Une définition est un discours qui dit ce qu'est une chose ou ce que signifie un nom. D'où la division entre les définitions réelles et les définitions nominales.) du compilateur sous forme de S-expression (Une S Expression (ou Expression Symbolique) est une convention pour la représentation de données ou d'expressions d'un programme sous forme textuelle. Les...) travaille sur lui-même à traver l'interpréteur (AI Memo 39) (lien)

Cette technique est aussi possible quand un interpréteur existe déjà pour le même langage qui est compilé.
Cela provient directement de la notion de tourner un programme avec lui-même comme entrée, ce qui est aussi utilisé dans des preuves variées en informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de l'information par des machines...) théorique telles que celui de l'indécidabilité (En logique mathématique, le terme décidabilité recouvre deux concepts liés : la décidabilité logique et la décidabilité algorithmique.) du problème de l'arrêt.

Cet article vous a plus ? Partagez-le sur les réseaux sociaux avec vos amis !
Page générée en 0.043 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique