Arno
Le compilateur est un programme volumineux et complexe, nous divisons donc le compilateur en différentes phases en fonction de leur complexité. Il y a quatre phases obligatoires de conformité; Analyse lexicale, analyse syntaxique, analyse sémantique et génération de code cible. Dans la première phase du compilateur, nous définissons des règles lexicales par expression régulière. L'analyse lexicale est aussi appelée Scanning. Dans cette phase, le programme source est vérifié pour avoir des caractères et des mots valides. Après analyse détaillée, le flux d'entrée de jetons est stocké dans une mémoire tampon. La deuxième phase du compilateur est l'analyse syntaxique. Dans cette phase, nous définissons des règles de syntaxe par Context Free Grammar. L'analyse syntaxique est également appelée parseur. Lors de l'analyse, les règles de syntaxe sont vérifiées. L'entrée de cette phase est des jetons et la sortie est un arbre d'analyse ou un arbre de syntaxe. La troisième phase de conformité est l'analyse sémantique.Fondamentalement, le mot sémantique signifie le "sens".
Dans cette phase, nous définissons des règles sémantiques par des grammaires d'attributs. L'analyse sémantique a deux types ; Contrôle de déclaration et contrôle de type. L'entrée de cette phase est l'arbre syntaxique et la sortie est la grammaire des attributs. La dernière et dernière phase est la génération de code cible. Une fois l'analyse du code source terminée, la dernière étape consiste à le convertir dans la langue cible. Les autres phases facultatives sont l'optimiseur de code source, l'optimiseur de code cible et le générateur de code intermédiaire
Olga
Sémantique signifie le "sens".
Dans cette phase, nous définissons des règles sémantiques par des grammaires d'attributs. L'analyse sémantique a deux types ; Contrôle de déclaration et contrôle de type. L'entrée de cette phase est l'arbre syntaxique et la sortie est la grammaire des attributs. La dernière et dernière phase est la génération de code cible. Une fois l'analyse du code source terminée, la dernière étape consiste à le convertir dans la langue cible. Les autres phases optionnelles sont Source
Trystan
Pour effectuer différentes tâches sur l'ordinateur, le compilateur est un moyen de communication qui traduit la langue source en langue cible. Le compilateur permet à l'utilisateur d'effectuer une tâche personnalisée sur la machine. Initialement, pour l'écriture du compilateur, le langage machine était utilisé. Après un certain développement, le langage assembleur et de nos jours un langage de haut niveau sont utilisés pour écrire le compilateur. Il existe différents types de compilateur ; Compilateur général, compilateur juste à temps, compilateur de code natif, compilateur croisé, compilateur source à source, compilateur multi-passes, compilateur mono-passe, etc. Les compilateurs généraux sont des compilateurs traditionnels. Ces compilateurs utilisent l'assembleur.
Just in Time Complier prend le code source en entrée et exécute le langage machine. L'exemple de ce compilateur est Java Virtual Machine. Souvent le code d'octet est utilisé comme représentation intermédiaire. Dans Native Code Compliers, le compilateur et la cible s'exécutent sur la même machine. Dans Cross Compiler, le compilateur s'exécute sur une machine différente et le code cible s'exécute sur une machine différente. Dans le compilateur source à source, l'entrée est un langage de haut niveau et la sortie est également un langage de haut niveau. Par exemple le compilateur C++ vers C. Le compilateur multi-passes exécute le compilateur de la phase de démarrage à la phase de fin séparément. Chaque phase après la compilation écrit sa sortie dans le fichier disque. Le compilateur à passage unique ne lit le code source qu'une seule fois. Dans ce type de compilateur, l'analyseur de syntaxe utilise l'analyse lexicale et la génération de code comme sous-programmes.