Présentation des compilateurs C

Apprenons ce concept de compilateurs avec un exemple. Supposons que vous vous soyez rendu dans un endroit où les langues que vous parlez sont complètement différentes les unes des autres et que vous avez maintenant eu des problèmes de voyage et que vous souhaitez communiquer avec eux. Comment? Aviez-vous besoin d'un traducteur non? Vous choisissez d'avoir quelqu'un qui peut comprendre votre langue et traduire et laisser la personne opposée comprendre ce que vous vouliez dire. De la même manière, nous écririons notre code C dans un langage de haut niveau qui est un format compréhensible par l'homme. Comment le programme comprendrait-il ce que nous lui avons demandé de faire? C'est là que le compilateur entre en scène. Un compilateur transforme et traduit un langage haut de gamme en langage compréhensible par machine (bas niveau). Le processus de compilation utilise des mécanismes de traduction de base ainsi que la détection des erreurs. La compilation frontale comprend une analyse lexicale, syntaxique et sémantique. Et à l'arrière, la compilation fait la génération et l'optimisation du code. Il existe donc de nombreux compilateurs en C comme BDS, Clang, GCC, Interactive C, Lattice, Portable C Compiler, Visual Express, etc. Apprenons-en plus sur quelques-uns d'entre eux.

Explications aux compilateurs C

Voici les meilleurs compilateurs de C:

1) Borland Turbo C

Turbo C est l'un des compilateurs de base et populaires pour le langage de programmation C. Cela a été introduit pour la première fois en 1987; il était populaire pour sa petite taille, sa vitesse de compilation et son prix bas. Une fois Turbo C ++ sorti en 1990, les deux compilateurs sont fusionnés et le nom Turbo C est abandonné. En 2006, Embarcadero Technologies avait réédité Turbo C en tant que logiciel gratuit. Vous souvenez-vous de cet écran bleu?

2) Tiny C Compiler

Le compilateur Tiny C est conçu pour fonctionner sur des ordinateurs lents avec peu d'espace disque. Il s'agit d'un compilateur C du processeur ARM. Ce compilateur a commencé sa prise en charge de Windows à partir de 2005. Certaines de ses fonctionnalités sont mentionnées ci-dessous.

  1. Sa taille de fichier est petite et selon le propriétaire de ce compilateur (Fabrice Bellard). La rapidité de ce compilateur est environ neuf fois plus rapide que GCC. La compilation, l'assemblage et la liaison de code étaient les principaux attributs pris en compte pour mesurer la rapidité de ce compilateur.
  2. Ce compilateur avait inclus de nombreuses fonctionnalités spécifiques au compilateur pour augmenter la mémoire optionnelle, le vérificateur lié et avait une plus grande stabilité du code.
  3. Ce compilateur permet l'exécution automatique de programmes pendant la compilation uniquement en utilisant des arguments de ligne de commande. De cette façon, les programmes sont exécutés sous UNIX, à l'aide de scripts shell. La dernière version a été publiée en décembre 2017.

3) Compilateur C portable

Le Portable C Compiler (PCC) était un compilateur très tôt utilisé et établi pour le langage de programmation C qui est presque vers le milieu des années 1970. Ce compilateur avait une longue durée de vie. Cela était répandu pendant une période telle que de nombreux compilateurs C étaient basés sur elle. Les avantages du PCC dépendaient de ses capacités et de ses prévisions de probabilité. Le compilateur PCC a été conçu de telle sorte que les fichiers source dépendent de la machine, pas tous, mais seulement quelques-uns. Il peut détecter des erreurs de syntaxe et effectuer des vérifications de validité parfaites. Une nouvelle version de PCC est sortie le 10 décembre 2014.

4) GCC

GNU Compiler Collection est le compilateur produit par le projet GNU. Cela prend en charge de nombreux langages de programmation et c'est une fondation de logiciel libre sous la licence publique générale. Ce compilateur a été publié pour la première fois en 1987 et ne supportait que le langage de programmation C lors du démarrage. Lentement, il s'est étendu à C ++, Java, Android et IOS. Ici, chacun des différents compilateurs de langage a son propre programme qui lit le code écrit et envoie le code machine en sortie. Tous ces éléments ont une structure interne commune. Lorsqu'un langage de haut niveau est écrit, selon le langage dans lequel il est écrit, le compilateur analyse le code dans ce langage et produit une arborescence de syntaxe abstraite. GCC utilise des analyseurs LALR, mais est lentement passé à des analyseurs à descente récursive pour C en 2006. En ce qui concerne la partie d'optimisation, comme cela est déjà connu, cela peut se produire pendant n'importe quelle phase de la compilation. Cependant, ici les optimisations en masse sont effectuées avant la génération du code et après la syntaxe, l'analyse sémantique. Voici quelques-unes des optimisations effectuées par GCC.

  1. Il peut éliminer les morceaux de Dead Code.
  2. Il peut éliminer la redondance au niveau du code.
  3. Remplacement des agrégats par rapport au niveau scalaire.
  4. Peut effectuer des optimisations avec des tableaux.

Dans GCC, le back-end est spécifié par des macros de préprocesseur et des fonctions spécifiques à une architecture particulière. Ce code est généralement construit en appelant d'abord un petit code d'extrait qui est associé à chaque modèle et génère des instructions à partir du jeu d'instructions. Cela se fait à l'aide de registres, décalages et adresses qui sont choisis pendant la phase de rechargement. La version actuelle de GCC est 9.2, qui a été publiée le 12 août 2019.

5) Clang

  1. Bruit; notamment C, est également un compilateur pour les langages de programmation C ++, Objective-C et objective-C ++. Ce compilateur utilise LLVM pour les compilations liées au code principal. Ce compilateur a été conçu pour remplacer le GCC en prenant en charge bon nombre de ses indicateurs de compilation et extensions de langage.
  2. Clang compte de nombreux contributeurs, notamment Apple, Microsoft, Google, Sony et Intel. Il s'agit d'un logiciel open source. LLVM a été utilisé pour la première fois par GCC pour la compilation frontale, mais GCC avait causé des problèmes aux développeurs d'Apple, car le code source est volumineux et difficile à utiliser. Donc, ils étaient venus avec Clang.
  3. L'un des principaux objectifs de Clang est de fournir une architecture basée sur une bibliothèque. Il est conçu pour conserver plus d'informations pendant le processus de compilation que GCC. Cela permet également de conserver la forme globale du code d'origine.
  4. Le rapport d'erreur généré par Clang lors de la compilation est toujours dans un format détaillé et spécifique dans un format lisible par machine. Clang avait toujours cherché à réduire la surutilisation de l'espace mémoire et à augmenter la vitesse de compilation par rapport à GCC, et en raison de ces qualités, il était devenu l'un des compilateurs utilisés à la croissance la plus rapide pendant un certain temps. Mais sur une période, les performances de Clang ont commencé à baisser. Les rapports indiquent que les performances ont accusé un retard avec des différences presque importantes par rapport à GCC et ont commencé à avoir des performances plus lentes. Les comparaisons les plus récentes indiquent que les deux compilateurs sont arrivés et ont augmenté leurs performances et créé une fois de plus une grande concurrence entre eux. Pourtant, GCC reste en tête de liste.

Conclusion

Bien qu'il existe de nombreux compilateurs disponibles pour C, GCC se distingue comme l'un des meilleurs à l'heure actuelle. La déclaration du gagnant repose ici sur la durabilité, l'optimisation, la vitesse et les contrôles de code / erreur / syntaxe. Grâce à cela, nous pouvons clairement comprendre que le compilateur est un pilier important des langages de programmation. Sans leur travail, le programme que nous écrivons ne serait que des ordures pour le système.

Articles recommandés

Ceci a été un guide pour les meilleurs compilateurs C. Ici, nous discutons des explications des compilateurs C avec cinq brèves remarques. Vous pouvez également consulter notre autre article suggéré pour en savoir plus-

  1. Compilateurs Python
  2. Compilateurs Java
  3. Comment installer C
  4. Avantages de C
  5. Introduction au compilateur PHP
  6. Compilateurs JavaScript