GNU Compiler Collection

GNU Compiler Collection Beskrivelse av GCC 11.1.0 kompilering av Chicken screenshot.png-bilde. Informasjon
Utviklet av GNU-prosjekt
Første versjon 23. mai 1987
Siste versjon 11.1 (27. april 2021)
Innskudd gcc.gnu.org/git
Skrevet i C ++
Grensesnitt Kommandolinjegrensesnitt
Støttespråk C , C ++ , Objective-C , Fortran , Ada , Go og D.
Operativsystem Linux , Hurd og Microsoft Windows
Miljø Multiplatform
Type Kompilator
Tillatelse GNU General Public License versjon 3
Nettsted gcc.gnu.org

GNU Compiler Collection , forkortet GCC , er en samling kompilatorer opprettet av GNU Project . GCC er gratis programvare som kan kompilere forskjellige programmeringsspråk , inkludert C , C ++ , Objective-C , Java , Ada , Fortran og Go .

GCC brukes til utvikling av mest gratis programvare. Den Linux-kjernen er spesielt avhengig av GCC funksjonalitet.

Presentasjon

GCC ble designet for å erstatte C- kompilatoren som leveres som standard på Unix- operativsystemet , som kalles CC. GCC sto opprinnelig for GNU C Compiler , eller " GNU C Compiler ". Siden GCC er veldig utvidbart, har støtte for mange andre språk blitt lagt til, og det offisielle navnet er endret til GNU Compiler Collection .

I praksis brukes forkortelsen GCC for å nevne tre litt forskjellige enheter:

  1. den komplette samlingen av kompilatorer (“GCC Project”);
  2. delen som er felles for alle kompilatorer ("GCC");
  3. selve C-kompilatoren ("gcc" frontend, skrevet med små bokstaver).

For å referere spesifikt til samlerne for hvert språk, snakker vi om:

Det er mange andre GCC-baserte kompilatorer som ikke er en del av standarddistribusjonen av GCC-prosjektet.

Utvidelse med plugins

Siden versjon 4.5 (4.6 og nyere) er GCC-kompilatorene utvidbare gjennom plugins ("  plugins  "). Dette må være gratis programvare og kan legge til optimaliseringskort, pragmas, innebygde eller attributter (men kan ikke utvide syntaksen som godtas av GCC). Det er noen få plugins for GCC: Mozilla utviklet Tree Hydra (avviklet). gcc python plugin gjør det mulig å utvide GCC med Python-skript, spesielt for å verifisere C-kode for Python. MELT er et spesifikt språk, inspirert av Lisp for å utvide GCC.

Feilsøking

GCC har også et feilsøkingsverktøy, GNU Debugger (gdb). Selv om det ikke er en del av GCC, foretrekkes Valgrind for mer grundige tester, spesielt for å finne minnelekkasjer .

Bærbarhet

GCC har blitt portet til et betydelig antall operativsystemer (praktisk talt alle varianter av Unix , VMS , Windows og MS-DOS via DJGPP ) og mikroprosessorer ( AMD64 , ARM , DEC Alpha , M68k , MIPS , PowerPC , SPARC , x86 , Hitachi H8 ).

Begrensninger

GCC, for C-språket, støtter ikke Unicode- identifikatorer .

Historie

Richard Stallman begynner sin utvikling med programmeringsspråket Pastel , en ikke- bærbar "dialekt" av Pascal . En første versjon kan dermed brukes fraJuni 1984. Dette språket er delvis inspirert av Pastel- kompilatoren , men også av den bærbare kompilatoren fra University of Arizona .

Han skrev en ny ANSI C- kompilator som startet våren 1986, deretter, med hjelp av Len Tower og under ledelse av Free Software Foundation , distribuerte han en første betaversjon på22. mars 1987, og den første stabile versjonen to måneder senere. På slutten av 1980-tallet støttet GCC allerede nesten et dusin arkitekturer; Michael Tiemann ser da ut til å være den mest aktive med seks porter utført alene. Det er til og med kreditert med innfødt støtte for C ++ - språket fra slutten av 1987, noe som gjør GNU-kompilatoren den første som støtter dette språket. Michael Tiemann forlot gradvis prosjektet på begynnelsen av 1990-tallet på grunn av tidsmangel på grunn av sine aktiviteter i selskapet Cygnus Solutions .

I 1992 ga versjon 2.0 i tillegg til en rekke optimaliseringer, stabil støtte for C ++ språk. Prosjektet ser ut til å gå inn i en ny tid som ofte kalles "  Cygnus-årene  ". Denne perioden begynner med en overgangsprosess fra versjon 1.42 til den nye versjonen.

I 1997 , en gruppe utviklere fant utviklingsmodellen treg og ikke veldig bidrar til forbedringer, så de bestemte seg for å punge prosjektet og kalte det EGCS (for "  Experimental / Enhanced GNU Compiler System  "). Etter de mange forbedringene som ble gjort, ble EGCS og GCC samlet i april 1999 , den første versjonen som ble publisert, er 2.95.

GCC følger nøye med på utviklingen av språkstandardisering, og noen ganger til og med foran den; dermed var noen av funksjonene til C99- standarden allerede til stede før den offisielle publikasjonen.

GCC er i dag den mest brukte kompilatoren i gratis programvaresamfunn og er kompilatoren for mange operativsystemer, som GNU / Linux , BSD , Mac OS X , NeXTSTEP eller til og med BeOS / Haiku .

Versjoner

Versjonene er satt av GCC-styringskomiteen . Versjon 4 samler Fortran 95 på forespørsel fra et stort antall vitenskapelige brukere. Det er faktisk på dette språket de fleste nåværende kildebiblioteker og vitenskapelige underrutiner byttes ut  ; Linux er veldig til stede i laboratorier. Siden versjon 5, via OpenACC , har kompatibiliteten med Fortran-språket blitt forbedret, og versjon 6 har blitt betydelig forbedret. I begynnelsen av 2021 implementerte GFortran 10.2 nesten fullt ut Fortran 2008-standarden og rundt 20% av Fortran 2018-standarden.

Her er utgivelsesdatoene for de siste store versjonene:

Versjon Utgivelsesdato
3.0 18. juni 2001
3.1 15. mai 2002
3.2 14. august 2002
3.3 13. mai 2003
3.4 18. april 2004
3.4.6 6. mars 2006
4.0 20. april 2005
4.0.4 31. januar 2007
4.1 28. februar 2006
4.1.2 13. februar 2007
4.2 13. mai 2007
4.2.4 19. mai 2008
4.3 5. mars 2008
4.3.5 22. mai 2010
4.4 21. april 2009
4.4.5 1 st oktober 2 010
4.5 14. april 2010
4.5.1 31. juli 2010
4.5.2 16. desember 2010
4.6 25. mars 2011
4.7 22. mars 2012
4.8 22. mars 2013
4.9 22. april 2014
5.1 22. april 2015
5.2 16. juli 2015
5.3 4. desember 2015
5.4 3. juni 2016
6.2 22. august 2016
6.3 21. desember 2016
7.1 2. mai 2017
7.2 14. august 2017
7.3 25. januar 2018
8.1 2. mai 2018
8.2 14. juli 2018
8.3 22. februar 2019
9.1 25. april 2019
9.2 12. august 2019
9.3 12. mars 2020
10.1 7. mai 2020

Syntaks

Den grunnleggende syntaksen som brukes av GCC-kompilatorene er:

gcc fichierSource.c -o binaire

For å bruke biblioteker er syntaksen som følger:

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

Mange alternativer (sendt som en parameter) lar deg handle på samlingen. GCC brukes ofte i makefiles av make- programmet .

Spesielt nyttige alternativer er -O1 eller -O2 for å fortelle kompilatoren å optimalisere, -Vegg til å be om nesten alle advarsler, -g for å generere feilsøkingsinformasjon, -c for å generere en objektfil (uten koblingsredigering).

Merknader og referanser

  1. "  https://www.gnu.org/software/gcc/releases.html  "
  2. GCC 11.1 Utgitt  "
  3. (in) "  gfortran - GNU Fortran-kompilatoren, GCC-andelen av  "gcc.gnu.org ,8. mars 2021.
  4. (in) "  GCC Release Series 9 - Changes, New Features, and Fixed - GNU Project - Free Software Foundation (FSF)  "gcc.gnu.org ,3. mai 2019.
  5. Tree Hydra .
  6. gcc python-plugin .
  7. SMELT .
  8. "Personal Note from Richard Stallman - Lisp Machine Manual" , common-lisp.net , juni 1984.
  9. “RMS-konferanse på KTH (Sverige)” , gnu.org , 30. oktober 1986.
  10. (in) Richard Stallman , GNU C compiler beta test release , mod. Compilers,22. mars 1987( les online ).
  11. (en) "  GCC Releases  " , på gnu.org ,22. mars 2012(åpnet 22. mars 2012 )
  12. (in) "  A Brief History of CCG  "Wiki GCC ,10. januar 2008(åpnet 22. mars 2012 )
  13. (in) DV Henkel-Wallace, Et nytt prosjekt for å slå sammen de eksisterende gafler GCC , egcs15. august 1997( les online ).
  14. Endringer i GCC 4-utgivelsesserien, nye funksjoner og reparasjoner
  15. (in) Velkommen til hjemmet til GNU Fortran
  16. Pierre Jaquet, “  Premiers pas en Fortran  ” [ [PDF] ], på Jaquet org. , 12. desember 2015(åpnet 6. mai 2019 )  :“Det brukes fortsatt mye i dag i den vitenskapelige verden fordi det tilbyr svært effektive verktøy for behandling av tabeller. Omtrent halvparten av dagens vitenskapelige programmer er skrevet i Fortran (flytdynamikk, digital kjemi, vær osv.). "
  17. Endringer i GCC 5-utgivelsesserien, nye funksjoner og reparasjoner
  18. (in) CCG 6 Release Series Endringer, nye funksjoner og reparasjoner
  19. (in) Kompilatorstøtte for Fortran 2008 Standard .
  20. Patrick Guignot, "  Nye funksjoner i GCC 4.0  " , på Linuxfr ,22. april 2005(åpnet 24. mars 2012 ) .
  21. Patrick Guignot, "  Nye funksjoner i GCC 4.1  " , på Linuxfr ,1 st mars 2006(åpnet 24. mars 2012 ) .
  22. Patrick Guignot, “  GCC 4.2 sluppet  ” , på Linuxfr ,17. mai 2007(åpnet 24. mars 2012 ) .
  23. Patrick Guignot, “  GCC 4.3 utgitt  ” , på Linuxfr ,10. mars 2008(åpnet 24. mars 2012 ) .
  24. Patrick Guignot, “  Utgivelse av versjon 4.4 av GCC-kompilatoren  ” , på Linuxfr ,21. april 2009(åpnet 24. mars 2012 ) .
  25. Patrick Guignot, “  Frigjøring av GCC 4.5  ” , på Linuxfr ,15. april 2010(åpnet 24. mars 2012 ) .
  26. Patrick Guignot, "  versjon 4.6 av GCC-kompilatoren er tilgjengelig  " , på Linuxfr ,26. mars 2011(åpnet 24. mars 2012 ) .
  27. Patrick Guignot, “  utgivelsen av versjon 4.7 av GCC kompilator  ” , på Linuxfr ,22. mars 2012(åpnet 24. mars 2012 ) .
  28. (in) "  GCC 7 utgivelseserie - endringer, nye funksjoner og fikset - GNU Project - Free Software Foundation (FSF)  "gcc.gnu.org (åpnet 7. mai 2017 )
  29. (in) "  GCC 7 Release Series - GNU Project - Free Software Foundation (FSF)  "gcc.gnu.org (åpnet 4. november 2017 )
  30. (in) "  GCC 7 utgivelseserie - endringer, nye funksjoner og fikset - GNU Project - Free Software Foundation (FSF)  "gcc.gnu.org (åpnet 25. januar 2017 )
  31. Frederic Mazué, "  GCC 9.1 Utgitt med C ++ support 17 og D-språket  "programmez.com (åpnet 6. mai 2019 )

Se også

Relaterte artikler

Eksterne linker