Google a annoncé son intention de mettre en œuvre Go 1.5 Bootstrap. L'auteur des documents pertinents est le développeur principal de Go, Russ Cox, qui travaille sur le langage Go depuis près de 6 ans. Selon Russ, Google réfléchit depuis un an sur "comment supprimer tous les programmes C de l'arborescence des sources Go". (Apprentissage recommandé : go)
Le bootstrapping est le processus « d'écrire son compilateur (ou assembleur) dans le langage de programmation cible à compiler ».
De manière générale, le bootstrap présente plusieurs avantages, tels que :
est utilisé pour tester le langage en cours de bootstrap
prend généralement en charge l'utilisation de plus ; Écrivez des compilateurs pour les langages de niveau supérieur qui fournissent des abstractions de plus haut niveau.
Les compilateurs peuvent également bénéficier de toute amélioration au niveau du langage.
Comme mentionné ci-dessus, Google a déjà lancé des efforts pour supprimer le code C de l'arborescence des sources Go. Le plan de conversion est divisé en 5 étapes :
N° 1 étape. - Développer un traducteur du langage C vers le langage Go, et traduire le compilateur C existant en langage Go. Cette étape profite du fait que le compilateur d'origine n'a pas fait un usage intensif de certaines fonctionnalités difficiles à porter vers le langage Go, telles que les macros, les unions et l'arithmétique des pointeurs.
Étape 2 - Convertir l'arborescence des sources du compilateur pour obtenir un compilateur en langage Go, mais il est relativement primitif et de style C.
Étape 3 - Convertir le compilateur obtenu précédemment en un programme conforme aux habitudes du langage Go, principalement en identifiant les packages, en ajoutant de la documentation et des tests unitaires.
Étape 4 - Optimiser le compilateur, résoudre le problème d'utilisation de la mémoire du compilateur et du CPU, et peut introduire la parallélisation.
De plus, essayer d'introduire une nouvelle représentation intermédiaire entre les arbres non ordonnés indépendants de l'architecture (Node*s) et les listes ordonnées dépendant de l'architecture (Prog*s) utilisées aujourd'hui, dans le but d'améliorer la compilation. Optimisation du processeur pour éliminer les contrôles nuls et les contrôles de limites redondants
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!