Bootstrap (compilateur)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Bootstrap.

En informatique, le terme bootstrapping décrit les techniques nécessaires à l'écriture d'un compilateur (ou d'un assembleur) dans le langage de programmation cible qu'il doit compiler.

On peut se demander comment résoudre ce paradoxe de l'œuf et de la poule : si l'on a besoin d'un compilateur pour le langage X afin d'obtenir un compilateur pour le langage X, comment le premier compilateur a été écrit ?

  • En écrivant un interpréteur ou un compilateur pour le langage X en langage Y.
  • En utilisant un autre interpréteur ou compilateur pour le langage X qui a déjà été écrit dans un langage Y. C'est ainsi que Scheme est souvent bootstrappé.
  • Des versions initiales du compilateur sont écrites dans un sous-ensemble de X pour lequel il existait un autre compilateur. C'est ainsi que des sur-ensembles de Java sont bootstrappés.
  • Le compilateur de X est croisé d'une autre architecture pour laquelle il existe un compilateur pour X. C'est ainsi que l'on porte généralement vers d'autres plates-formes les compilateurs pour le C.
  • En écrivant le compilateur optimisant X, puis en le compilant à la main à partir de son code source (probablement d'une manière non optimisée) et en tournant le code obtenu pour obtenir le compilateur optimisant.

Les méthodes pour distribuer des compilateurs en code source incluent la fourniture d'un bytecode portable du compilateur, afin de bootstrapper le système de compilation du compilateur avec lui-même.

NELIAC a été le premier langage à fournir un tel bootstrap. PL/I a été le premier langage commercial à le faire.

Aujourd'hui, une large proportion des langages de programmation sont bootstrappés, dont C, Scheme, Ocaml, Pascal, Modula-2, Oberon, Perl 6.

Voir aussi[modifier | modifier le code]

Lien externe[modifier | modifier le code]