GNU Compiler Collection

Fra Wikipedia, den frie encyklopedi
(Omdirigert fra GCC)
Hopp til: navigasjon, søk
GCC «GNU Compiler Collection»
GCC «GNU Compiler Collection»
Utvikler GNU-prosjektet
Utgitt 23. mai 1987
Nyeste versjon 5.3 (4. desember 2015)
Operativsystem Unix og Unix-liknende
Type Kompilator
Lisens GPL
Nettsted gcc.gnu.org
«GCC» leder hit. For organisasjonen GCC se Golfrådet.

GNU Compiler Collection (GCC) er en samling kompilatorer for en rekke forskjellige programmeringsspråk. GCC er en del av GNU-prosjektet. GCC stod opprinnelig for «GNU C Compiler» og var en kompilator for programmeringsspråket C. Det er fri programvare som distribueres av Free Software Foundation under GNU General Public License og GNU Lesser General Public License, og er en nøkkelkomponent blant GNU-verktøykjeden. Det er standard-kompilatoren for fri programvare Unix-liknende operativsystemer, slik som Linux, men også for Apples Mac OS X.

GCC 1.0 ble opprinnelig sluppet i 1987, og kompilatoren ble utvidet til å kompilere C++ i desember i det samme året.[1] Senere har det blitt utviklet grensesnitt for blant andre Fortran, Pascal, Objective-C, Java, og Ada.[2]

Programmeringsspråk[rediger | rediger kilde]

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 for Modula-2, Modula-3, Pascal, PL/I, D, Mercury, VHDL gjennom utvidelser.

Litteratur[rediger | rediger kilde]

Arkitekturer[rediger | rediger kilde]

GCC versjon 4.1 kan kompilere kode for å kjøre på følgende prosessorer:

Andre mikroprosessorer som tidligere ble støttet i standard-utgaven inkluderer:

I tillegg har følgende prosessorer vært støttet av GCC versjoner som har blitt vedlikeholdt separat fra FSF versjonen:

Historikk[rediger | rediger kilde]

GNU C Compiler[rediger | rediger kilde]

GCC var opprinnelig navnet på GNU C kompilatoren. Det er en fri C kompilator, med åpen kildekode, for UNIX og Unix-liknende systemer.

De første GNU C kompilatorene fulgte de facto standardene, som ble definert av Kernighan & Richie, sammen med GNUs egne utvidelser.

Idag følger GNU C standard-biblioteket GNU C Library alle relevante standarder: ISO C99, POSIX.1c, POSIX.1j, POSIX.1d, UNIX-98 og the 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 standardbiblioteket GNU Libstdc++, som ble integrert i GNU Compiler Collection i versjon 3.1.

Versjon Lansert Versjon Lansert
De første GNU C (GCC) og C++ kompilatorene – Kernighan & Richie standarden
GCC 0.9
Første beta-utgave
22. mars 1987 GCC 1.38 21. desember 1990
GCC 1.0 23. mai 1987 GCC 1.39 16. januar 1991
GCC 1.1 24. mai 1987 GCC 1.39.1
G++ (C++ kompilator)
4. mai 1991
GCC 1.2 1. juni 1987 GCC 1.40 1. juni 1991
GCC 1.3 10. juni 1987 GCC 1.40.3
G++ (C++ kompilator)
19. oktober 1991
GCC 1.4 13. juni 1987 GCC 1.41.0
G++ (C++ kompilator)
13. juli 1992
GCC 1.5 18. juni 1987 GCC 1.41 27. august 1992
GCC 1.6 2. juli 1987 GCC 1.42 20. september 1992
GCC 1.7 21. juli 1987 GCC 1.42.0
G++ (C++ kompilator)
20. september 1992
GCC 1.8 10. august 1987 GCC 2.0 22. februar 1992
GCC 1.9 18. august 1987 GCC 2.1 24. mars 1992
GCC 1.10 22. august 1987 GCC 2.2 8. juni 1992
GCC 1.11 5. september 1987 GCC 2.2.1 9. juni 1992
GCC 1.12 3. oktober 1987 GCC 2.2.2 14. juni 1992
GCC 1.13 12. oktober 1987 GCC 2.3 31. oktober 1992
GCC 1.14 6. november 1987 GCC 2.3.1 1. november 1992
GCC 1.15 28. november 1987 GCC 2.3.2 27. november 1992
GCC 1.15.3
G++ (C++ kompilator)
18. desember 1987 GCC 2.3.3 26. desember 1992
GCC 1.16 19. desember 1987 GCC 2.4.0 17. mai 1993
GCC 1.17 9. januar 1988 GCC 2.4.1 26. mai 1993
GCC 1.18 4. februar 1988 GCC 2.4.2 31. mai 1993
GCC 1.19 29. mars 1988 GCC 2.4.3 1. juni 1993
GCC 1.20 19. april 1988 GCC 2.4.4 19. juni 1993
GCC 1.21 1. mai 1988 GCC 2.4.5 20. juni 1993
GCC 1.22 22. mai 1988 GCC 2.5.0 22. oktober 1993
GCC 1.23 26. juni 1988 GCC 2.5.1 31. oktober 1993
GCC 1.24 2. juli 1988 GCC 2.5.2 1. november 1993
GCC 1.25 3. august 1988 GCC 2.5.3 11. november 1993
GCC 1.26 18. august 1988 GCC 2.5.4 16. november 1993
GCC 1.27 5. september 1988 GCC 2.5.5 27. november 1993
GCC 1.28 14. september 1988 GCC 2.5.6 3. desember 1993
GCC 1.29 6. oktober 1988 GCC 2.5.7 12. desember 1993
GCC 1.30 13. oktober 1988 GCC 2.5.8 24. januar 1994
GCC 1.31 19. november 1988 GCC 2.6.0 14. juli 1994
GCC 1.32 21. desember 1988 GCC 2.6.1 1. november 1994
GCC 1.33 1. februar 1989 GCC 2.6.2 12. november 1994
GCC 1.34 23. februar 1989 GCC 2.6.3 30. november 1994
GCC 1.35 26. april 1989 GCC 2.7.0 16. juni 1995
GCC 1.36 24. september 1989 GCC 2.7.1 12. november 1995
GCC 1.36.3
G++ (C++ kompilator)
16. januar 1990 GCC 2.7.2 26. november 1995
GCC 1.36.4
G++ (C++ kompilator)
30. januar 1990 GCC 2.7.2.1 29. juni 1996
GCC 1.37 11. februar 1990 GCC 2.7.2.2 29. januar 1997
GCC 1.37.1 21. februar 1990 GCC 2.7.2.3 22. august 1997
GCC 1.37.0
G++ (C++ kompilator)
28. februar 1990 GCC 2.8.0 7. januar 1998
GCC 1.37.1
G++ (C++ kompilator)
1. mars 1990 GCC 2.8.1 2. mars 1998

EGCS (Enhanced GNU Compiler Systems)[rediger | rediger kilde]

Versjonhistorie for EGCS
Versjon Dato Versjon av GNU C
1.0 3. desember 1997 GCC 2.90.21
1.0.1 6. januar 1998 GCC 2.90.23
1.0.2 16. mars 1998 GCC 2.90.27
1.0.3 15. mai 1998 GCC 2.90.29
1.1 3. september 1998 GCC 2.91.57
1.1.1 1. desember 1998 GCC 2.91.60
1.1.2 15. mars 1999 GCC 2.91.66

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
  • Større optimalisering
  • Forbedret debugging

EGCS bestod av fire kompilatorer:

GNU Compiler Collection (GCC)[rediger | rediger kilde]

Versjonhistorie for GCC 2.95.x
Versjon Dato
GCC 2.95 31. juli 1999
GCC 2.95.1 19. august 1999
GCC 2.95.2 27. oktober 1999
GCC 2.95.2.1 10. desember 2000
GCC 2.95.3 16. mars 2001

I april 1999 ble styrings-komitéen til EGCS utnevnt av Free 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-bit operativsystemer.

GCC 2.95 bestod av følgende kompilatorer:

GNU CHILL ble fjernet fra GCC versjon 3.0, og mange Linux-distribusjoner, deriblant Red Hat Fedora og Mandriva 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øyde GNU Ada-95. I GCC 4.0 ble GNU Fortran-77 kompilatoren erstattet av en mer oppdatert versjon som fulgte Fortran-95 standarden. GCC 4.1 tilføyde det nye programmeringsspråket GNU Objekt C++.

GCC 2.95[rediger | rediger kilde]

GCC 3.0[rediger | rediger kilde]

GCC 3.1[rediger | rediger kilde]

I GCC 3.1 opphørte støtten for følgende mikroprosessorer:

GCC 3.2[rediger | rediger kilde]

GCC 3.3[rediger | rediger kilde]

I GCC 3.3 opphørte støtten for følgende mikroprosessorer:

GCC 3.4[rediger | rediger kilde]

I GCC 3.4 opphørte støtten for følgende mikroprosessorer:

GCC 4.0[rediger | rediger kilde]

I GCC 4.0 fikk alle programmeringsspråkene en felles parser eller syntaktisk analysator, kalt tree SSA (Static Single Assignment).[3] Kode fra ulike språk konverteres til en felles form kalt Generic, og deretter til en GIMPLE-parser (en fri utgave av SIMPLE fra the 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.

Mikroprosessorer som ikke lenger ble støttet:

I GCC 4.0 opphørte også støtten for SPARClite baserte systemer og 32-bit OpenBSD på SPARC.

GCC 4.1[rediger | rediger kilde]

GCC 4.2[rediger | rediger kilde]

GCC 4.3[rediger | rediger kilde]

GCC 4.4[rediger | rediger kilde]

GCC 4.5[rediger | rediger kilde]

Versjonshistorikk[rediger | rediger kilde]

Versjon Lansert Merknader
3.0 18. juni 2001
3.0.1 20. august 2001
3.0.2 25. oktober 2001
3.0.3 20. desember 2001
3.0.4 21. februar 2002
3.1 15. mai 2002
3.1.1 26. juli 2002
3.2 14. august 2002
3.2.1 21. november 2002
3.2.2 5. februar 2003
3.2.3 25. april 2003
3.3 14. mai 2003
3.3.1 8. august 2003
3.3.2 17. oktober 2003
3.3.3 14. februar 2004
3.4.0 18. april 2004
3.3.4 31. mai 2004
3.4.1 1. juli 2004
3.4.2 6. september 2004
3.3.5 30. september 2004
3.4.3 4. november 2004
4.0.0 20. april 2005
3.3.6 3. mai 2005
3.4.4 18. mai 2005
4.0.1 7. juli 2005
4.0.2 28. september 2005
3.4.5 30. november 2005
4.1.0 28. februar 2006
3.4.6 6. mars 2006
4.0.3 10. mars 2006
4.1.1 24. mai 2006
4.0.4 31. januar 2007
4.1.2 13. februar 2007
4.2.0 13. mai 2007
4.2.1 18. juli 2007
4.2.2 7. oktober 2007
4.2.3 1. februar 2008
4.3.0 5. mars 2008
4.2.4 19. mai 2008
4.3.1 6. juni 2008
4.3.2 27. august 2008
4.3.3 24. januar 2009
4.4.0 21. april 2009
4.4.1 22. juli 2009 83 feilrettinger
4.3.4 4. august 2009
4.4.2 5. oktober 2010 20 feilrettinger
4.4.3 21. januar 2010
4.5.0 14. april 2010 Støtten for IRIX før versjon 6.5, Solaris 7 og Tru64 UNIX eldre enn V5.1 opphørt. Støtten for de første versjonene av mikroprosessoren POWER1 (RIOS1 og RIOS2) opphørt.
4.4.4 29. april 2010
4.3.5 22. mai 2010
4.5.1 31. juli 2010
4.4.5 1. oktober 2010
4.5.2 16. desember 2010
4.6.0 25. mars 2011 Støtten for Interix, Netware for i386, ABI for 32-bit RISC-prosessoren M·CORE (M·CORE PE), SymbianOS, GNU Hurd for Alpha/PowerPC og μClinux for Motorola 68000 opphørt. Støtten for Argonaut ARC, National Semiconductor CRX, Motorola 68HC11 og 68HC12 og Sunplus S+core opphørt.
4.4.6 16. april 2011
4.5.3 28. april 2011
4.3.6 27. juni 2011
4.6.1 27. juni 2011
4.6.2 26. oktober 2011
4.6.3 1. mars 2012
4.4.7 13. mars 2012
4.7.0 22. mars 2012 Støtten for IRIX 6.5, MIPS OpenBSD, Solaris 8 og Tru64 UNIX V5.1 opphørt.
4.7.1 14. juni 2012
4.5.4 2. juli 2012
4.7.2 20. september 2012
4.8.0 22. mars 2013
4.7.3 11. april 2013
4.6.4 12. april 2013
4.8.1 31. mai 2013 Støtte for C++11 ref-qualifiers tilføyd. Den første kompilator til å implementere alle de større språklige egenskaper i C++11 standarden.
4.8.2 16. oktober 2013
4.9.0 22. april 2014 Støtten for Solaris 9 opphørt. Tilføyd støtte for 512-biter SIMD-instruksjonssett AVX-512 på mikroprosessoren Intel Xeon Phi.
4.8.3 22. mai 2014
4.9.1 16. juli 2014 OpenMP 4.0 for Fortran tilføyd. Støtte i Fortran for IEEE iboende moduler som spesifisert i standardene Fortran-2003 og Fortran-2008.
4.9.2 30. oktober 2014 Støtte for Cilk Plus ble tilføyd GCC.
4.8.4 19. desember 2014 GCC kan nå bli bygd som et delt bibliotek hvor andre interpretere og kompilatorer kan foreta Just-in-time compilation. Bidrag av Red Hat.
5.1 22. april 2015 std=gnu89 blir erstattet av std=gnu11 (C++11 med Gnu-utvidelser) som standard. Støtte for C++14 og delvis støtte for C++17. Støtte for DragonFly BSD, FreeBSD for ARM og VxWorks MILS (Multiple Independent Levels of Security) for PowerPC. Støtte for arkitekturen VISIUMcore og MIPS Release 6 ble tilføyd. Tilføyd støtte for Intel MPXSkylake-arkitekturen. Tilføyd støtte for Intel Xeon Skylake utvidelser til SIMD-instruksjonssettet AVX-512.
4.8.5 23. juni 2015
4.9.3 26. juni 2015
5.2 16. juli 2015
5.3 4. desember 2015

Referanser[rediger | rediger kilde]

  1. ^ «GCC Releases». GNU Project. Besøkt 24. april 2009. 
  2. ^ «Programming Languages Supported by GCC». GNU Project. Besøkt 24. april 2009. 
  3. ^ Proceedings of the 2003 GCC Developers Summit (sidene 171-193)

Se også[rediger | rediger kilde]

Eksterne lenker[rediger | rediger kilde]