Je me demande ce qui compose, que se passe-t-il lorsque vous compilez? Je veux dire oui, vous appuyez sur Compiler ou tapez dans la console mais qu'est-ce que cela fait réellement dans le "fond"? P>
5 Réponses :
Voir Ceci P>
Fondamentalement, les elfes magiques et les fées transforment le code lisible humain en code de machine. P>
Un très bref surperiewe serait un compilateur par exemple votre code vérifiant les erreurs, puis la transforme en octets ou en code machine. P>
Pour un meilleur aperçu, je lirais l'article Wikipedia sur les compilateurs: P>
La compilation est la traduction du code source sur le code de la machine. Habituellement, un compilateur (ou un interpréteur) générera un code intermédiaire parfois appelé code d'octet qui fonctionne sur une machine virtuelle (c'est ainsi que Java est compilé). Le code d'octet est traduit par la machine virtuelle à la machine spécifique à la machine qui fonctionne sur l'architecture particulière que vous ciblez. Tout ce processus peut être considéré comme "compiler" p>
La cible est souvent, mais ne doit pas nécessairement être, code machine. Les compilateurs que je travaille sur la compilée du code C - nous utilisons ensuite le compilateur Native C pour terminer le travail de compilation au code de la machine. Un autre d'entre eux génère un code P (Code de la machine Pseudo - où vont les traits d'union?); Le résultat est ensuite interprété par un interprète qui utilise des fonctions régulières C (code de machine) pour exécuter les instructions de code P. Un compilateur Java génère un code octet pour la JVM - ce n'est pas un code machine non plus.
ou Ceci . P>
Le livre de dragon, la source d'origine pour les compilateurs de construction. P>
Le 'ou' est légèrement trompeur - comparé à quoi? Votre lecture suggérée est assez bonne, mais vous devriez rendre votre réponse plus proche de lui-même. Ensuite, vous obtiendrez les votes utiles ...
C'était en réponse à la première réponse que j'ai trouvée pour cette question, qui était simplement "ceci". comme un lien vers l'article de Wikipedia sur les compilateurs.
premier, le compilateur "Lexes" la source. Cela signifie qu'il transforme la source en une séquence de "jetons". Les jetons sont des séquences de lettres, de chiffres et de symboles qui ont un sens au compilateur. P> li>
Suivant, le compilateur "Parets" la séquence des jetons de l'étape une. Cela signifie que le compilateur vérifie que la source est conforme aux règles (le grammaire ) de la programmation langue. p> li>
Suivant, le compilateur effectue analyse syntaxique pour créer une représentation de la source à déterminer le sens sémantique de la source. C'est l'étape où le compilateur construira un arborescence de syntaxe . P> li>
Enfin, le compilateur sera générer sortie qui capture la sémantique Signification de la source dans la représentation cible (que ce soit le code de la machine, une langue intermédiaire telle que Microsoft's Cil , ou un autre langage de programmation). P> li> ol>
Pour les brefs détails, voir Wikipedia . Pour les détails de Gory, voir Le livre Dragon (chaque étudiant d'informatique devrait étudier ce livre). P>
Merci, "(chaque étudiant en informatique devrait étudier ce livre)." J'étais étudiant en informatique .. Je n'ai jamais vraiment connu ce livre et j'étais plus concentré sur la programmation. Structures de données, Objets BLA BLA .. Jamais vraiment je me suis vraiment demandé "au-delà"
Dragon Book "n'est pas aussi gory que possible. La dernière fois que j'ai vérifié, il a mentionné la collecte des ordures à quelques reprises et n'a fourni absolument aucune information sur la manipulation des exceptions. Ou vous me manquez?
Je ne sais pas ce qui est inclus dans le livre de dragon, mais la mise en œuvre du compilateur moderne en Java ( cs.princeton.edu/~appel/modern/java ) a tout ce que vous avez mentionné, puis certains. C'est ce que nous avons utilisé dans notre cours au collège.