Compilateur

Définition - Que signifie compilateur?

Un compilateur est un programme logiciel qui transforme un code source de haut niveau écrit par un développeur dans un langage de programmation de haut niveau en un code objet de bas niveau (code binaire) en langage machine, qui peut être compris par le processeur. Le processus de conversion de la programmation de haut niveau en langage machine est appelé compilation.

Le processeur exécute un code objet, qui indique quand des signaux binaires haut et bas sont requis dans l'unité arithmétique et logique du processeur.

Definir Tech explique le compilateur

Un compilateur qui convertit le langage machine en langage naturel de haut niveau est appelé un décompilateur. Les compilateurs qui produisent le code objet destiné à s'exécuter sur un système sont appelés compilateurs croisés. Enfin, un compilateur qui convertit un langage de programmation en un autre est appelé un traducteur de langage.

Un compilateur exécute quatre étapes principales:

  • Balayage: Le scanner lit un caractère à la fois à partir du code source et garde la trace de quel caractère est présent dans quelle ligne.
  • Analyse lexicale: Le compilateur convertit la séquence de caractères qui apparaissent dans le code source en une série de chaînes de caractères (appelées jetons), qui sont associées par une règle spécifique par un programme appelé analyseur lexical. Une table de symboles est utilisée par l'analyseur lexical pour stocker les mots dans le code source qui correspondent au jeton généré.
  • Analyse syntaxique: Dans cette étape, une analyse syntaxique est effectuée, ce qui implique un prétraitement pour déterminer si les jetons créés lors de l'analyse lexicale sont dans le bon ordre selon leur utilisation. L'ordre correct d'un ensemble de mots-clés, qui peut donner un résultat souhaité, est appelé syntaxe. Le compilateur doit vérifier le code source pour garantir la précision syntaxique.
  • Analyse sémantique: Cette étape comprend plusieurs étapes intermédiaires. Tout d'abord, la structure des jetons est vérifiée, ainsi que leur ordre par rapport à la grammaire dans une langue donnée. La signification de la structure du jeton est interprétée par l'analyseur et l'analyseur pour finalement générer un code intermédiaire, appelé code objet. Le code objet comprend des instructions qui représentent l'action du processeur pour un jeton correspondant lorsqu'il est rencontré dans le programme. Enfin, tout le code est analysé et interprété pour vérifier si des optimisations sont possibles. Une fois que les optimisations peuvent être effectuées, les jetons modifiés appropriés sont insérés dans le code objet pour générer le code objet final, qui est enregistré dans un fichier.