GCC er en del avGNU-prosjektet, og er offisielle kompilatorer for GNU-operativsystemetGNU Hurd/GNU Mach. GCC anvendes i dag også som standard kompilatorer av mange andreUnix-liknende operativsystemer, heravLinux og frie avarter avBSD.FreeBSD benyttet i utgangspunktet GCC, men gikk over tilClang/LLVM i 2014. OgsåApplesmacOS benytter i dag primært LLVM, men støtter også GCC. GCC er også tilgjengelig for ulike avarter avMicrosoft Windows og andre operativsystemer, og kan kompilere kode forAndroid ogiOS.
GCC ble lansert 23. mai 1987 som en kompilator forprogrammeringsspråketC, og forkortelsen stod da forGNU C Compiler. Den 18. desember 1987 lanserte FSF enC++-kompilator under navnetGNU G++. Da GCC 3.0 ble lansert den 18. juni 2003, ble GNU C Compiler og GNU G++ slått sammen, slik at GNU C Compiler også er en C++ kompilator. GNU C Compiler benytterC-standardbiblioteketGNU C Library (gclib); forut for GCC 3.0 fantes det også et eget standardbibliotek for C++ kaltlibg++. Dette vedlikeholdes ikke lenger, og er blitt slått sammen medgclib.
Den 3. desember 1997 ble GCC en del avEnhanced GNU Compiler Systems (EGCS), et samarbeidsprosjekt som bestod av de fire kompilatorene GNU C, GNU C++, GNUObjective-C og GNUFortran-77. Den 31. juli 1999 ble denne omdøpt tilGNU Compiler Collection og utvidet med GNUJava og GNUCHILL. Verken CHILL eller Java er en del av GCC.
GCC 1.0 ble utvidet til å kompilereC++ i desember 1987.[3]Senere har det blitt utviklet grensesnitt for blant andrePascal ogAda.[4]
Programmeringsspråk
GCC versjon 4.3 inneholder støtte for C, C++ (G++), Java (GCJ), Ada (GNAT), Objective-C, Objective-C++ og Fortran-95 (GFortran). Det er også tilgjengelig støtte forModula-2, Modula-3, Pascal,PL/I, D, Mercury,VHDL gjennom utvidelser.
Arkitekturer
GCC versjon 4.1 kan kompilere kode for å kjøre på følgende prosessorer:
Stallmann ba om tillatelse til å benytteAmsterdam Compiler Kit i forbindelse med GNU Hurd. Da Tanenbaum forklarte at Vrije Universiteit var fritt, men ikke kompilatoren, bestemte Stallman seg for å lage sin egen kompilator.[7]
GNU C Compiler
GCC var opprinnelig navnet på GNU C kompilatoren. Det er en fri C kompilator, med åpen kildekode, forUNIX ogUnix-liknende systemer.
De første GNU C kompilatorene fulgtede facto standardene, som ble definert av Kernighan & Richie, sammen med GNUs egne utvidelser.
Idag følger GNU C standard-biblioteketGNU C Library alle relevante standarder: ISO C99, POSIX.1c, POSIX.1j, POSIX.1d, UNIX-98 ogthe Single UNIX Specification. GNU C har også et av de mest komplette grensesnitt for internasjonalisering.
GNU C++ følger standardene ANSI C++ 2.1, ISO C++ 1998 standarden, og har også eksperimentell støtte for den kommende ISO C++ 0x standarden, gjennom standardbiblioteketGNU Libstdc++, som ble integrert i GNU Compiler Collection i versjon 3.1.
EGCS (Enhanced GNU Compiler Systems)
EGCS (Enhanced GNU Compiler Systems) var et samarbeidsprosjekt for å påskynde utviklingen av GNU kompilatorer. Viktige målsetninger var:
Støtte for nye mikroprosessorer og operativsystemer
Portabilitet til Microsoft ® Windows™ 32-bit operativsystemer
Større samsvar mellom GNU implementasjonen av C og C++ og standardene ISO C99 og ANSI C++ 2.1
Iapril1999 ble styrings-komitéen til EGCS utnevnt avFree Software Foundation som den offisielle vedlikeholder av GCC. Samtidig ble GCC omdøpt fra å være en forkortelse for «GNU C Compiler» til å bli en forkortelse for «GNU Compiler Collection».
Kompilatorene ble etter dette også portable til Microsoft Windows™ 64-bitoperativsystemer.
GNU CHILL ble fjernet fra GCC versjon 3.0, og mange Linux-distribusjoner, deriblantRed Hat Fedora ogMandriva Linux, begynte å levere GCC 2.95, i tillegg til senere versjoner av GCC, for å gi brukerne tilgang til programmeringsspråket CHILL.
GCC 3.1 tilføydeGNU Ada-95. I GCC 4.0 ble GNUFortran-77 kompilatoren erstattet av en mer oppdatert versjon som fulgteFortran-95 standarden. GCC 4.1 tilføyde det nye programmeringsspråketGNU Objekt C++.
GCC 2.95
GCC 3.0
GCC 3.1
I GCC 3.1 opphørte støtten for følgende mikroprosessorer:
I GCC 4.0 fikk alle programmeringsspråkene en felles parser eller syntaktisk analysator, kalttree SSA (Static Single Assignment).[8] Kode fra ulike språk konverteres til en felles form kaltGeneric, og deretter til en GIMPLE-parser (en fri utgave av SIMPLE frathe McCat project ved McGill University), og deretter optimalisert gjennom RTL-optimalisering. Dette gjorde C++ koden 25 % raskere.
Fortran-77 erstattet av Fortran-95
Ada-kompilatoren uvidet med deler av Ada-2005 standarden
Generering av raskere C++ kode (25 % raskere enn versjon 3.4 uten optimalisering).
Støtte for NEC VR4130 serien (MIPS) og MIPS-3D ASE instruksjonssett.
Utvidet støtte for Sun's Visual Instruction Set (VIS) på UltraSPARC.
Signatur-utvidelsene i syntaksen til G++ ble definert som foreldet, og ble fjernet i GCC 3.0.[9] GCC 2.95.1 hadde færre arkaiske G ++ konstruksjoner enn GCC 2.95.[9]
2.95.2
27. oktober 1999
Tilføyde makroen Define __STDC_EXT__ forHP-UX konfigurasjoner.[9] TilføydefeilsøkingsdataformatetSTABS i stedet for formatetDWARF1 påSolaris versjonene 2.4, 2.5, 2.6 og 7 påx86.[9] Tilføyde C++ kompatible include filer for Linux for ARM.[9]
Støtten forIRIX før versjon 6.5,Solaris 7 ogTru64 UNIX eldre enn V5.1 opphørt. Støtten for de første versjonene av mikroprosessorenPOWER1 (RIOS1 og RIOS2) opphørt.
Duckett, George (2015).GCC: Questions and Answers. Kindle Edition. George Duckett, 5. januar 2015 (solgt av Amazon Digital Services LLC). ASIN B00RW8WST4.
Hagen, William von (2006).The Definitive Guide to GCC (Definitive Guides). Apress, 2. utgave, 11. august 2006.ISBN1 590 59585 8.ISBN 978-1590595855.
Holmevik, Jan Rune; Bogost, Ian; Ulmer, Gregory (2012).Inter/vention: Free Play in the Age of Electracy. MIT Press, 23. mars 2012.ISBN0 262 30090 7.ISBN 978-0-262-01705-3.CS1-vedlikehold: Flere navn: forfatterliste (link)
Loosenmore, Sandra (2004).GNU C Library Application Fundamentals. GNU Press, Free Software Foundation, mars 2004.ISBN1 882 11422 1.ISBN 978-1882114221.
Loosenmore, Sandra (2004).GNU C Library System & Network Applications. GNU Press, Free Software Foundation, mars 2004.ISBN1 882 11424 8.ISBN 978-1882114245.
Stallman, Richard Matthew (2000).Volume 1. Gcc Command Options: Gcc Target Description Macros: Using and Porting the Gnu Compiler Collection Gcc. Iuniverse Inc., August 2000.ISBN0 595 10036 8.ISBN 978-0595100361.
Stallman, Richard Matthew (2000).Volume 2. Gcc Target Description Macros: Using and Porting the Gnu Compiler Collection Gcc. Iuniverse Inc., August 2000.ISBN0 595 10037 6.ISBN 978-0595100378.
Stallman, Richard Matthew (2000).Volume 3. Gcc Target Description Macros: Using and Porting the Gnu Compiler Collection Gcc. Iuniverse Inc., August 2000.ISBN0 595 10038 4.ISBN 978-0595100385.
Stallman, Richard Matthew (2009).Using The Gnu Compiler Collection: A Gnu Manual For Gcc Version 4.3.3. CreateSpace Independent Publishing Platform, 20. mars 2009.ISBN1 441 41276 X.ISBN 978-1441412768.