GCC

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk
GCC «GNU Compiler Collection»
GCC «GNU Compiler Collection»
Utvikler GNU-prosjektet
Utgitt 23. mai 1987
Nyeste versjon 4.7.1 (14. juni 2012)
Operativsystem UNIX og Unix-liknende
Type Kompilator
Lisens GPL
Nettside gcc.gnu.org
For organisasjonen GCC se Golfrådet.

GCC er en samling kompilatorer for en rekke forskjellige programmeringsspråk. GCC er en del av GNU-prosjektet. GCC står i dag for «GNU Compiler Collection», men 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-like 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]

Versjonhistorie for GCC 3.x
Versjon Dato
GCC 3.0 18. juni 2001
GCC 3.0.1 20. august 2001
GCC 3.0.2 25. oktober 2001
GCC 3.0.3 20. desember 2001
GCC 3.0.4 21. februar 2002
GCC 3.1 15. mai 2002
GCC 3.1.1 26. juli 2002
GCC 3.2 14. august 2002
GCC 3.2.1 21. november 2002
GCC 3.2.2 5. februar 2003
GCC 3.2.3 25. april 2003
GCC 3.3 14. mai 2003
GCC 3.3.1 8. august 2003
GCC 3.3.2 16. oktober 2003
GCC 3.3.3 14. februar 2004
GCC 3.3.4 31. mai 2004
GCC 3.3.5 30. september 2004
GCC 3.3.6 3. mai 2005
GCC 3.4 20. april 2004
GCC 3.4.1 1. juli 2004
GCC 3.4.2 6. september 2004
GCC 3.4.3 5. november 2004
GCC 3.4.4 19. mai 2005
GCC 3.4.5 30. november 2005
GCC 3.4.6 6. mars 2006

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.
Versjonhistorie for GCC 4.0x, 4.1x, 4.2x og 4.3x
Versjon Dato
GCC 4.0 21. april 2005
GCC 4.0.1 7. juli 2005
GCC 4.0.2 18. september 2005
GCC 4.0.3 10. mars 2006
GCC 4.0.4 31. januar 2007
GCC 4.1 28. februar 2006
GCC 4.1.1 24. mai 2006
GCC 4.1.2 13. februar 2007
GCC 4.2 13. mai 2007
GCC 4.2.1 18. juli 2007
GCC 4.2.2 7. oktober 2007
GCC 4.2.3 1. februar 2008
GCC 4.2.4 19. mai 2008
GCC 4.3 5. mars 2008
GCC 4.3.1 6. juni 2008
GCC 4.3.2 27. august 2008
GCC 4.3.3 24. januar 2009
GCC 4.3.4 4. august 2009
GCC 4.3.5 22. mai 2010
GCC 4.3.6 27. juni 2011

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]

Versjon Lansert Merknader
GCC 4.4 21. april 2009
GCC 4.4.1 22. juli 2009 83 feilrettinger
GCC 4.4.2 15. oktober 2009 20 feilrettinger
GCC 4.4.3 21. januar 2010
GCC 4.4.4 29. april 2010
GCC 4.4.5 1. oktober 2010
GCC 4.4.6 16. april 2011
GCC 4.4.7 13. mars 2012

GCC 4.5[rediger | rediger kilde]

Versjon Lansert Merknader
GCC 4.5 14. april 2010
GCC 4.5.1 31. juli 2010
GCC 4.5.2 16. desember 2010
GCC 4.5.3 28. april 2011
GCC 4.5.4 2. juni 2012

GCC 4.6[rediger | rediger kilde]

Versjon Lansert Merknader
GCC 4.6.0 25. mars 2011
GCC 4.6.1 27. juni 2011
GCC 4.6.2 27. oktober 2011
GCC 4.6.3 1. mars 2012

GCC 4.7[rediger | rediger kilde]

Versjon Lansert Merknader
GCC 4.7.0 22. mars 2012
GCC 4.7.1 14. juni 2012

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]