Le compilateur gcc C est-il écrit en C lui-même? Ou est-ce écrit en Assemblée? Si le compilateur est écrit en C, quel est le compilateur utilisé pour compiler le code du compilateur?
Réponses
Trop de publicités?L'histoire spécifique de gcc est donnée à la GCC Wiki. La plus générale est que les compilateurs sont généralement à l'origine compilé avec un autre compilateur jusqu'à ce qu'ils sont assez puissants pour compiler eux-mêmes. Alternativement, il est possible d'écrire un compilateur basic qui permet de traiter un sous-ensemble de vos fonctions en assembleur, et de construire à partir de là. Mais encore une fois, ce n'est presque jamais nécessaire. Il y a beaucoup de compilateurs disponibles dans une variété de langues. Même lorsque Stephen Johnson a été écrit pcc (l'un des premiers compilateurs C), il y avait des compilateurs pour B disponibles, ainsi que de nombreuses autres langues. gcc a plusieurs compilateurs pour choisir de construire à l'origine, et RMS, dit-il été à l'aide du compilateur Pastel au moins au cours de son développement initial.
Rappelez-vous, il n'est pas nécessaire qu'un compilateur C être écrit en C. Vous pouvez l'écrire en Perl, si vous vouliez. Il n'est pas nécessaire qu'un compilateur pour une plate-forme donnée d'être à l'origine écrit sur cette plate-forme (systèmes embarqués presque toujours sont compilés sur un autre système). Donc, il y a de nombreuses façons de le faire vous-même démarré.
Cette question a fait d'intéressantes subtilités liées à la première instance pour lancer le compilateur. Si vous avez été très intelligent, vous pourriez faire usage de bootstrap pour faire quelque chose d'incroyable, génial et terrifiant.