À retenir
- C'est le signe qu'un langage de programmation est devenu autonome.
- Cela permet d'améliorer les performances du langage en utilisant ses propres optimisations.
- C'est un cycle vertueux : le langage aide à fabriquer son propre futur.
Autoamorcer consiste à utiliser un compilateur pour traduire son propre code source afin de créer une nouvelle version de lui-même. C'est un peu comme si un robot utilisait ses propres mains pour construire une version plus évoluée de son propre corps.
Étymologie
Le terme vient du préfixe auto- (soi-même) et du verbe amorcer (commencer une opération). C'est la traduction française du concept informatique de bootstrap, qui fait référence à l'image d'une personne se soulevant du sol en tirant sur ses propres lacets.
Exemples d'usage
- Le compilateur GCC (utilisé pour le C) qui compile les fichiers source de sa future mise à jour.
- Le langage Go qui, après avoir été écrit en C, utilise désormais une version précédente de Go pour produire la suivante.
- Le projet PyPy, une version de Python écrite en Python, qui s'autoamorce pour s'exécuter.
Cas d'usage
Ce concept intervient principalement dans la création et l'évolution des langages de programmation. Une fois qu'un langage est assez mature, ses créateurs préfèrent l'utiliser lui-même pour développer ses futures fonctionnalités plutôt que de dépendre d'un autre langage.
Bonnes pratiques
Pour réussir un autoamorçage, il faut s'assurer que la version actuelle (N) est parfaitement stable, car la moindre erreur empêchera la création de la version suivante (N+1). Il est aussi conseillé de conserver un exécutable binaire de secours au cas où le code source deviendrait temporairement impossible à compiler.
Synonymes
Conseil
Si vous débutez, voyez l'autoamorçage comme la preuve de maturité d'un outil informatique. C'est l'étape où le créateur n'a plus besoin d'outils extérieurs pour faire progresser son propre logiciel.
Questions fréquentes
Comment crée-t-on le tout premier compilateur si on ne peut pas l'autoamorcer ?
On utilise la technique du 'pont' : on écrit la toute première version dans un autre langage déjà existant (comme l'Assembleur ou le C). Une fois que cette base fonctionne, on peut réécrire le compilateur dans son propre langage.
Est-ce que cela concerne tous les programmes ?
Non, cela concerne presque exclusivement les compilateurs et certains outils fondamentaux de développement.