Ce Jour-là

GNU Compiler Collection

Compilateurs du projet GNU

Anúncio

GNU Compiler Collection, abrégé en GCC, est un ensemble de compilateurs créés par le projet GNU. GCC est un logiciel libre capable de compiler divers langages de programmation, dont C, C++, Objective-C, Java, Ada, Fortran et Go.

GCC est utilisé pour le développement de la plupart des logiciels libres. Le noyau Linux dépend notamment étroitement des fonctionnalités de GCC.

GCC a été conçu pour remplacer le compilateur C fourni en standard sur le système d'exploitation Unix, qui s'appelle CC. GCC signifiait à l'origine GNU C Compiler, soit le « compilateur C de GNU ». Comme GCC est très extensible, la prise en charge de nombreux autres langages a été ajoutée et le nom officiel a été changé en GNU Compiler Collection.

En pratique, l'abréviation GCC est utilisée pour nommer trois entités légèrement différentes :

la collection complète de compilateurs (le « projet GCC ») ;

la partie commune à tous les compilateurs (« GCC ») ;

le compilateur C lui-même (le frontend « gcc », écrit en minuscule).

Pour faire référence précisément aux compilateurs de chaque langage, on parle de :

Il existe de nombreux autres compilateurs basés sur GCC qui ne font pas partie de la distribution standard du projet GCC.

Extensibilité par des greffons

Depuis la version 4.5 (et surtout 4.6), les compilateurs GCC sont extensibles par des greffons (« plugins »). Ceux-ci doivent être du logiciel libre et peuvent ajouter des passes d'optimisations, des pragmas, builtins ou attributs (mais ne peuvent pas étendre la syntaxe acceptée par GCC). Il existe quelques greffons pour GCC : Mozilla avait développé Tree Hydra (abandonné). gcc python plugin permet d'étendre GCC avec des scripts Python, notamment pour vérifier du code C pour Python. MELT est un langage spécifique, inspiré de Lisp pour étendre GCC.

GCC dispose également d'un outil de débogage, GNU Debugger (gdb). Bien que ne faisant pas partie de GCC, Valgrind est cependant préféré pour des tests plus en profondeur, notamment pour rechercher les fuites de mémoire.

GCC a été porté sur un nombre considérable de systèmes d'exploitation (pratiquement toutes les variantes d'Unix, VMS, Windows et MS-DOS via DJGPP) et de microprocesseurs (AMD64, ARM, AVR, DEC Alpha, M68k, MIPS, PowerPC, SPARC, x86, Hitachi H8).

GCC, pour le langage C, ne prend pas en charge les identificateurs Unicode.

Richard Stallman commence ses développements avec le langage de programmation Pastel, un « dialecte » non portable de Pascal. Une première version est ainsi utilisable dès juin 1984. Ce langage s'inspire en partie du compilateur Pastel, mais aussi du compilateur portable de l'université de l'Arizona.

Il écrit un nouveau compilateur C ANSI à partir du printemps 1986, puis, avec l'aide de Len Tower et sous l'égide de la Free Software Foundation, il distribue une première version bêta le 22 mars 1987, et la première version stable deux mois plus tard. À la fin des années 1980, GCC supporte déjà près d'une douzaine d'architectures ; Michael Tiemann apparaît alors comme le plus actif avec six ports réalisés à lui seul. Il est même crédité du support natif du langage C++ dès la fin 1987, faisant du compilateur GNU le premier à supporter ce langage. Michael Tiemann délaisse progressivement le projet au début des années 1990 par manque de temps dû à ses activités au sein de la société Cygnus Solutions.

En 1992, la version 2.0 apporte en plus des nombreuses optimisations, un support stable du langage C++. Le projet semble alors entrer dans une nouvelle ère communément appelée « les années Cygnus ». Cette période débute par un processus de transition de la version 1.42 vers la nouvelle mouture.

En 1997, un groupe de développeurs trouve le modèle de développement lent et peu propice aux améliorations, ils décident alors de faire un fork du projet et le nomment EGCS (pour « Experimental/Enhanced GNU Compiler System »). À la suite des nombreuses améliorations réalisées, EGCS et GCC sont réunis en avril 1999, la première version publiée est la 2.95.

Anúncio

Bientôt sur l'application World in Stories

Audio, téléchargement hors ligne, sans publicité et plus.

Découvrir Premium
GNU Compiler Collection | World in Stories