Colecția GNU Compiler

Colecția GNU Compiler Descrierea imaginii GCC 11.1.0 care compilează imaginea Chicken screenshot.png. informație
Dezvoltat de Proiectul GNU
Prima versiune 23 mai 1987
Ultima versiune 11.1 (27 aprilie 2021)
Depozit gcc.gnu.org/git
Scris in C ++
Interfață Linia de comandă
Limbi de asistență C , C ++ , Objective-C , Fortran , Ada , Go și D.
Sistem de operare Linux , Hurd și Microsoft Windows
Mediu inconjurator Multiplatform
Tip Compilator
Licență GNU General Public License versiunea 3
Site-ul web gcc.gnu.org

GNU Compiler Collection , prescurtat ca GCC , este o colecție de compilatoare create de Proiectul GNU . GCC este un software gratuit capabil să compileze diverse limbaje de programare , inclusiv C , C ++ , Objective-C , Java , Ada , Fortran și Go .

GCC este utilizat pentru dezvoltarea majorității software-ului gratuit. Kernel - ul Linux este depinde în special de funcționalitate CCG.

Prezentare

GCC a fost conceput pentru a înlocui compilatorul C furnizat standard pe sistemul de operare Unix , care se numește CC. GCC a reprezentat inițial GNU C Compiler sau „ GNU C Compiler ”. Deoarece GCC este foarte extensibil, a fost adăugat suport pentru multe alte limbi, iar numele oficial a fost schimbat în GNU Compiler Collection .

În practică, abrevierea GCC este utilizată pentru a denumi trei entități ușor diferite:

  1. Colecția completă de compilatoare („Proiectul GCC”);
  2. partea comună tuturor compilatorilor („GCC”);
  3. compilatorul C în sine (frontendul "gcc", scris cu litere mici).

Pentru a ne referi în mod special la compilatoarele fiecărei limbi, vorbim despre:

Există multe alte compilatoare bazate pe GCC care nu fac parte din distribuția standard a proiectului GCC.

Extensibilitate prin pluginuri

De la versiunea 4.5 (4.6 și mai sus), compilatoarele GCC sunt extensibile prin intermediul pluginurilor („  pluginuri  ”). Acestea trebuie să fie software gratuit și pot adăuga pasuri de optimizare, pragme, programe integrate sau atribute (dar nu pot extinde sintaxa acceptată de GCC). Există câteva pluginuri pentru GCC: Mozilla a dezvoltat Tree Hydra (întrerupt). gcc python plugin permite extinderea GCC cu scripturi Python, în special pentru a verifica codul C pentru Python. MELT este un limbaj specific, inspirat de Lisp pentru a extinde GCC.

Depanare

GCC are și un instrument de depanare, GNU Debugger (gdb). Deși nu face parte din GCC, Valgrind este preferat pentru teste mai aprofundate, în special pentru a găsi scurgeri de memorie .

Portabilitate

GCC a fost portat pe un număr considerabil de sisteme de operare (practic toate variantele de Unix , VMS , Windows și MS-DOS prin DJGPP ) și microprocesoare ( AMD64 , ARM , DEC Alpha , M68k , MIPS , PowerPC , SPARC , x86 , Hitachi H8 ).

Limitări

GCC, pentru limbajul C, nu acceptă identificatorii Unicode .

Poveste

Richard Stallman își începe dezvoltarea cu limbajul de programare Pastel , un „dialect” non- portabil al lui Pascal . O primă versiune poate fi astfel utilizată de laIunie 1984. Acest limbaj este parțial inspirat de compilatorul Pastel , dar și de compilatorul portabil al Universității din Arizona .

A scris un nou compilator ANSI C începând cu primăvara anului 1986, apoi, cu ajutorul lui Len Tower și sub egida Free Software Foundation , a distribuit o primă versiune beta pe22 martie 1987, și prima versiune stabilă două luni mai târziu. La sfârșitul anilor 1980, GCC susținea deja aproape o duzină de arhitecturi; Michael Tiemann pare apoi să fie cel mai activ, cu șase porturi efectuate pe cont propriu. Este chiar creditat cu suport nativ pentru limbajul C ++ de la sfârșitul anului 1987, făcând compilatorul GNU primul care acceptă acest limbaj. Michael Tiemann a abandonat treptat proiectul la începutul anilor '90 din cauza lipsei de timp din cauza activităților sale în cadrul companiei Cygnus Solutions .

În 1992 , versiunea 2.0 a adus pe lângă numeroase optimizări, suport stabil pentru limbajul C ++. Proiectul pare să intre într-o nouă eră numită în mod obișnuit „  anii Cygnus  ”. Această perioadă începe cu un proces de tranziție de la versiunea 1.42 la noua versiune.

În 1997 , un grup de dezvoltatori a găsit modelul de dezvoltare lent și nu prea propice îmbunătățirilor, așa că au decis să forțeze proiectul și l-au numit EGCS (pentru „  Sistemul de compilare GNU experimental / îmbunătățit  ”). În urma numeroaselor îmbunătățiri aduse, EGCS și GCC sunt unite în aprilie 1999 , prima versiune publicată fiind de 2,95.

CCG urmărește îndeaproape dezvoltarea standardizării lingvistice și uneori chiar o precede; astfel, unele dintre funcționalitățile standardului C99 erau deja prezente înainte de publicarea oficială.

GCC este astăzi cel mai utilizat compilator din comunitatea de software liber și este compilatorul pentru multe sisteme de operare, precum GNU / Linux , BSD , Mac OS X , NeXTSTEP sau chiar BeOS / Haiku .

Versiuni

Versiunile sunt stabilite de Comitetul director al CCG . Versiunea 4 compilează Fortran 95 la cererea unui număr mare de utilizatori științifici. De fapt, în acest limbaj se schimbă cele mai multe biblioteci sursă actuale și subrutine științifice  ; Linux este foarte prezent în laboratoare. De la versiunea 5, prin OpenACC , compatibilitatea cu limba Fortran a fost îmbunătățită, iar versiunea 6 a fost considerabil îmbunătățită. La începutul anului 2021, GFortran 10.2 a implementat aproape în totalitate standardul Fortran 2008 și aproximativ 20% din standardul Fortran 2018.

Iată datele de lansare pentru cele mai recente versiuni majore:

Versiune Data eliberării
3.0 18 iunie 2001
3.1 15 mai 2002
3.2 14 august 2002
3.3 13 mai 2003
3.4 18 aprilie 2004
3.4.6 6 martie 2006
4.0 20 aprilie 2005
4.0.4 31 ianuarie 2007
4.1 28 februarie 2006
4.1.2 13 februarie 2007
4.2 13 mai 2007
4.2.4 19 mai 2008
4.3 5 martie 2008
4.3.5 22 mai 2010
4.4 21 aprilie 2009
4.4.5 1 st Septembrie Octombrie Noiembrie anul 2010
4.5 14 aprilie 2010
4.5.1 31 iulie 2010
4.5.2 16 decembrie 2010
4.6 25 martie 2011
4.7 22 martie 2012
4.8 22 martie 2013
4.9 22 aprilie 2014
5.1 22 aprilie 2015
5.2 16 iulie 2015
5.3 4 decembrie 2015
5.4 3 iunie 2016
6.2 22 august 2016
6.3 21 decembrie 2016
7.1 2 mai 2017
7.2 14 august 2017
7.3 25 ianuarie 2018
8.1 2 mai 2018
8.2 14 iulie 2018
8.3 22 februarie 2019
9.1 25 aprilie 2019
9.2 12 august 2019
9.3 12 martie 2020
10.1 7 mai 2020

Sintaxă

Sintaxa de bază utilizată de compilatoarele GCC este:

gcc fichierSource.c -o binaire

Pentru a utiliza bibliotecile , sintaxa este următoarea:

gcc fichierSource.c -o binaire -l''bibliothèque''

Multe opțiuni (trecute ca parametru) vă permit să acționați asupra compilației. GCC este adesea utilizat în makefiles de programul make .

Opțiunile deosebit de utile sunt -O1 sau -O2 pentru a spune compilatorului să optimizeze, -Wall să ceară aproape toate mesajele de avertizare, -g pentru generarea informațiilor de depanare, -c pentru generarea unui fișier obiect (fără editare link).

Note și referințe

  1. „  https://www.gnu.org/software/gcc/releases.html  ”
  2. „  GCC 11.1 lansat  ”
  3. (în) "  gfortran - compilatorul GNU Fortran, partea GCC a  " de pe gcc.gnu.org ,8 martie 2021.
  4. (în) "  GCC Release Series 9 - Modificări, noi caracteristici și corecție - Proiect GNU - Free Software Foundation (FSF)  " pe gcc.gnu.org ,3 mai 2019.
  5. Hydra Tree .
  6. plugin gcc python .
  7. FUNDARE .
  8. „Notă personală de la Richard Stallman - Lisp Machine Manual” , common-lisp.net , iunie 1984.
  9. „Conferința RMS la KTH (Suedia)” , gnu.org , 30 octombrie 1986.
  10. (în) Richard Stallman , versiunea de test beta a compilatorului GNU C , mod.compilers,22 martie 1987( citește online ).
  11. (ro) „  Lansări GCC  ” , pe gnu.org ,22 martie 2012(accesat la 22 martie 2012 )
  12. (în) „  O scurtă istorie a CCG  ” pe Wiki GCC ,10 ianuarie 2008(accesat la 22 martie 2012 )
  13. (în) DV Henkel-Wallace, Un nou proiect de îmbinare a furcilor existente GCC , egcs15 august 1997( citește online ).
  14. (în) CCG 4 Release Series Modificări, Caracteristici noi și remedieri
  15. (în) Bine ați venit la casa GNU Fortran
  16. Pierre Jaquet, „  Premiers pas en Fortran  ” [ [PDF] ], pe Jaquet org. , 12 decembrie 2015(accesat la 6 mai 2019 )  :„Rămâne utilizat pe scară largă astăzi în lumea științifică, deoarece oferă instrumente foarte eficiente pentru procesarea tabelelor. Aproximativ jumătate din programele științifice actuale sunt scrise în Fortran (dinamica fluxurilor, chimia digitală, vremea etc.). "
  17. Modificări, funcții noi și remedieri ale seriei de versiuni GCC 5 (în)
  18. Modificări, caracteristici noi și remedieri ale seriei de versiuni CCG 6 (în)
  19. (în) Suport pentru compilator pentru standardul Fortran 2008 .
  20. Patrick Guignot, „  Funcții noi în GCC 4.0  ” , pe Linuxfr ,22 aprilie 2005(accesat la 24 martie 2012 ) .
  21. Patrick Guignot, „  Funcții noi în GCC 4.1  ” , pe Linuxfr ,1 st martie 2006(accesat la 24 martie 2012 ) .
  22. Patrick Guignot, „  GCC 4.2 lansat  ” , pe Linuxfr ,17 mai 2007(accesat la 24 martie 2012 ) .
  23. Patrick Guignot, „  GCC 4.3 lansat  ” , pe Linuxfr ,10 martie 2008(accesat la 24 martie 2012 ) .
  24. Patrick Guignot, „  Lansarea versiunii 4.4 a compilatorului GCC  ” , pe Linuxfr ,21 aprilie 2009(accesat la 24 martie 2012 ) .
  25. Patrick Guignot, „  Lansarea GCC 4.5  ” , pe Linuxfr ,15 aprilie 2010(accesat la 24 martie 2012 ) .
  26. Patrick Guignot, „  Versiunea 4.6 a compilatorului GCC este disponibilă  ” , pe Linuxfr ,26 martie 2011(accesat la 24 martie 2012 ) .
  27. Patrick Guignot, „  Lansarea versiunii 4.7 a compilatorului GCC  ” , pe Linuxfr ,22 martie 2012(accesat la 24 martie 2012 ) .
  28. (în) "  GCC 7 Release Series - Modificări, noi caracteristici și corecție - Proiect GNU - Free Software Foundation (FSF)  " pe gcc.gnu.org (accesat la 7 mai 2017 )
  29. (în) "  GCC 7 Release Series - GNU Project - Free Software Foundation (FSF)  " pe gcc.gnu.org (accesat la 4 noiembrie 2017 )
  30. (în) „  GCC 7 Release Series - Schimbări, caracteristici noi și remediere - Proiect GNU - Free Software Foundation (FSF)  ” pe gcc.gnu.org (accesat la 25 ianuarie 2017 )
  31. Frederic Mazué, „  GCC 9.1 lansat cu suport C ++ 17 și limbajul D  ” pe programez.com (accesat la 6 mai 2019 )

Vezi și tu

Articole similare

linkuri externe