Maison  >  Article  >  développement back-end  >  qu'est-ce que le compilateur C

qu'est-ce que le compilateur C

青灯夜游
青灯夜游original
2021-02-26 11:39:5515458parcourir

Le compilateur C, également connu sous le nom de compilateur de langage C, fait référence à un programme de traduction qui traduit un programme source écrit en langage C en un programme cible équivalent au format langage machine. Le compilateur c vérifiera d'abord l'exactitude du programme source et le décomposera en un certain nombre de composants de base ; puis créera des parties de programme cible équivalentes correspondantes basées sur ces composants de base ;

qu'est-ce que le compilateur C

L'environnement d'exploitation de ce tutoriel : système Windows 7, version c99, ordinateur Dell G3.

Le compilateur c est un ensemble de logiciels fournis par les fabricants d'ordinateurs. Un compilateur C, également appelé compilateur de langage C, fait référence à un programme de traduction qui traduit un programme source écrit en langage C en un programme cible équivalent au format langage machine.

Le compilateur est un programme de traduction implémenté en utilisant une approche d'implémentation générative. Il prend en entrée un programme source écrit dans un langage de programmation de haut niveau et en sortie un programme cible exprimé en langage assembleur ou en langage machine. Le programme cible compilé passe généralement également par une étape d'exécution afin de s'exécuter avec le support du programme en cours d'exécution, de traiter les données initiales et de calculer les résultats de calcul requis.

La fonction de base du compilateur est de traduire le programme source (langage de haut niveau) en programme cible. Cependant, en tant que système de compilation ayant une valeur d'application pratique, en plus des fonctions de base, il devrait également avoir des fonctions importantes telles que la vérification de la syntaxe, les mesures de débogage, les méthodes de modification, le traitement de la couverture, l'optimisation du programme cible, l'utilisation de différents langages et la relation homme-machine. contact.

  • ① Vérification grammaticale : Vérifiez si le programme source est grammatical. Si ce n’est pas grammatical, le compilateur doit indiquer l’emplacement, la nature et les informations pertinentes de l’erreur grammaticale. Le programme compilé doit permettre à l'utilisateur de détecter autant d'erreurs que possible en une seule fois.

  • ②Mesures de débogage : vérifiez si le programme source répond à l'intention du concepteur. À cette fin, le compilateur doit placer certaines instructions de sortie dans le programme cible compilé afin que les informations sur l'exécution dynamique du programme puissent être sorties lorsque le programme cible est en cours d'exécution, telles que les modifications des valeurs des variables, les circuits rencontrés lors de l'exécution du programme. , etc. Ces informations aident les utilisateurs à vérifier et à vérifier si le programme source exprime les exigences de l'algorithme.

  • ③Méthode de modification : fournissez aux utilisateurs une méthode simple pour modifier le programme source. Les compilateurs fournissent généralement des moyens de modification par lots (utilisés pour modifier un grand nombre d'erreurs temporairement difficiles à modifier) ​​et des moyens de modification sur site (utilisés pour modifier un petit nombre d'erreurs temporairement faciles à modifier lors de l'exécution).

  • ④ Traitement de couverture : il est principalement configuré pour gérer des programmes problématiques à grande échelle avec des programmes longs et de grandes quantités de données. L'idée de base est de permettre à certains segments de programme et données de partager certaines zones de stockage, dans lesquelles seuls les programmes ou données actuellement utilisés sont stockés, les programmes et données restants qui ne sont pas utilisés temporairement sont d'abord stockés dans un stockage auxiliaire tel que des disques. et peut être transféré dynamiquement en cas de besoin.

  • ⑤ Optimisation du programme cible : améliore la qualité du programme cible, c'est-à-dire qu'il prend moins d'espace de stockage et que la durée d'exécution du programme est courte. En fonction des objectifs d'optimisation, le compilateur peut choisir d'implémenter l'optimisation des expressions, l'optimisation des boucles ou l'optimisation globale du programme. Une partie de l'optimisation du programme cible est effectuée au niveau du programme source et une autre est effectuée au niveau du programme cible.

  • ⑥ Utilisation dans différentes langues : sa fonction aide les utilisateurs à écrire des applications en utilisant plusieurs langages de programmation ou à appliquer des modules de programme existants écrits dans différentes langues. Le plus courant est la combinaison d’un langage de haut niveau et d’un langage assembleur. Cela peut non seulement compenser la difficulté des langages de haut niveau à exprimer certaines opérations de traitement non numériques ou à contrôler et accéder directement aux périphériques et aux registres matériels, mais facilite également l'écriture de programmes de base en langage assembleur pour améliorer l'efficacité opérationnelle.

  • ⑦ Connexion homme-machine : obtenez des fonctions bien conçues lors de la détermination du plan de mise en œuvre du compilateur. L'objectif est d'aider les utilisateurs à comprendre les conditions de travail internes en temps opportun pendant les étapes de compilation et d'exécution, et de superviser et contrôler efficacement le fonctionnement du système.

Le plan de mise en œuvre du premier compilateur était d'incorporer complètement les fonctions ci-dessus dans le compilateur. Cependant, la pratique courante consiste à configurer les débogueurs, les éditeurs et les assembleurs de connexions avec la prise en charge du système d'exploitation pour faciliter le débogage, la modification, l'écrasement et l'intégration de fonctions dans différents langages. Cependant, lors de la conception d'un compilateur, une attention particulière doit être accordée à des questions telles que la manière d'interfacer avec ces sous-systèmes.

[Recommandation associée : "Tutoriel vidéo sur le langage C"]

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn