GCC

Fra Wikipedia, den frie encyklopedi

Gå til: navigasjon, søk
GCC «GNU Compiler Collection»
Utvikler: GNU-prosjektet
Nyeste versjon: 4.3.1/ 6. juni 2008
Operativsystem: UNIX og Unix-liknende
Sjanger: Kompilator
Lisens: GPL
Nettside: gcc.gnu.org

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]

Innhold

[rediger] Programmeringsspråk

GCC versjon 4.2 inneholder støtte for C, C++ (G++), Java (GCJ), Ada (GNAT), Objective-C, Objective-C++ og Fortran (GFortran). Det er også tilgjengelig støtte for Modula-2, Modula-3, Pascal, PL/I, D, Mercury, VHDL gjennom utvidelser.

[rediger] Litteratur

[rediger] Arkitekturer

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

Mindre kjente prosessorer som også har blitt støttet i standard utgaven har inkludert:

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

[rediger] Historikk

[rediger] GNU C Compiler

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 GLibc 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.

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

EGCS bestod av fire kompilatorer:

[rediger] GNU Compiler Collection (GCC)

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 nå 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++.

[rediger] Versjonshistorikk

Versjon Lansert Merknader
GNU C Compiler (GCC)
GCC 0.9 22. mars 1987 Første beta-utgave
GCC 1.0 23. mai 1987
GCC 1.1 24. mai 1987
GCC 1.2 1. juni 1987
GCC 1.3 10. juni 1987
GCC 1.4 13. juni 1987
GCC 1.5 18. juni 1987
GCC 1.6 2. juli 1987
GCC 1.7 21. juli 1987
GCC 1.8 10. august 1987
GCC 1.9 18. august 1987
GCC 1.10 22. august 1987
GCC 1.11 5. september 1987
GCC 1.12 3. oktober 1987
GCC 1.13 12. oktober 1987
GCC 1.14 6. november 1987
GCC 1.15 28. november 1987
GCC 1.15.3 18. desember 1987 G++ (C++ kompilator)
GCC 1.16 19. desember 1987
GCC 1.17 9. januar 1988
GCC 1.18 4. februar 1988
GCC 1.19 29. mars 1988
GCC 1.20 19. april 1988
GCC 1.21 1. mai 1988
GCC 1.22 22. mai 1988
GCC 1.23 26. juni 1988
GCC 1.24 2. juli 1988
GCC 1.25 3. august 1988
GCC 1.26 18. august 1988
GCC 1.27 5. september 1988
GCC 1.28 14. september 1988
GCC 1.29 6. oktober 1988
GCC 1.30 13. oktober 1988
GCC 1.31 19. november 1988
GCC 1.32 21. desember 1988
GCC 1.33 1. februar 1989
GCC 1.34 23. februar 1989
GCC 1.35 26. april 1989
GCC 1.36 24. september 1989
GCC 1.36.3 16. januar 1990 G++ (C++ kompilator)
GCC 1.36.4 30. januar 1990 G++ (C++ kompilator)
GCC 1.37 11. februar 1990
GCC 1.37.1 21. februar 1990
GCC 1.37.0 28. februar 1990 G++ (C++ kompilator)
GCC 1.37.1 1. mars 1990 G++ (C++ kompilator)
GCC 1.38 21. desember 1990
GCC 1.39 16. januar 1991
GCC 1.39.1 4. mai 1991 G++ (C++ kompilator)
GCC 1.40 1. juni 1991
GCC 1.40.3 19. oktober 1991 G++ (C++ kompilator)
GCC 1.41.0 13. juli 1992 G++ (C++ kompilator)
GCC 1.41 27. august 1992
GCC 1.42 20. september 1992
GCC 1.42.0 20. september 1992 G++ (C++ kompilator)
GCC 2.0 22. februar 1992
GCC 2.1 24. mars 1992
GCC 2.2 8. juni 1992
GCC 2.2.1 9. juni 1992
GCC 2.2.2 14. juni 1992
GCC 2.3 31. oktober 1992
GCC 2.3.1 1. november 1992
GCC 2.3.2 27. november 1992
GCC 2.3.3 26. desember 1992
GCC 2.4.0 17. mai 1993
GCC 2.4.1 26. mai 1993
GCC 2.4.2 31. mai 1993
GCC 2.4.3 1. juni 1993
GCC 2.4.4 19. juni 1993
GCC 2.4.5 20. juni 1993
GCC 2.5.0 22. oktober 1993
GCC 2.5.1 31. oktober 1993
GCC 2.5.2 1. november 1993
GCC 2.5.3 11. november 1993
GCC 2.5.4 16. november 1993
GCC 2.5.5 27. november 1993
GCC 2.5.6 3. desember 1993
GCC 2.5.7 12. desember 1993
GCC 2.5.8 24. januar 1994
GCC 2.6.0 14. juli 1994
GCC 2.6.1 1. november 1994
GCC 2.6.2 12. november 1994
GCC 2.6.3 30. november 1994
GCC 2.7.0 16. juni 1995
GCC 2.7.1 12. november 1995
GCC 2.7.2 26. november 1995
GCC 2.7.2.1 29. juni 1996
GCC 2.7.2.2 29. januar 1997
GCC 2.7.2.3 22. august 1997
GCC 2.8.0 7. januar 1998
GCC 2.8.1 2. mars 1998
EGCS (Enhanced GNU Compiler Systems)
Versjonene av GNU C i de ulike versjonene av EGCS
EGCS 1.0 3. desember 1997 GCC 2.90.21
EGCS 1.0.1 6. januar 1998 GCC 2.90.23
EGCS 1.0.2 16. mars 1998 GCC 2.90.27
EGCS 1.0.3 15. mai 1998 GCC 2.90.29
EGCS 1.1 3. september 1998 GCC 2.91.57
EGCS 1.1.1 1. desember 1998 GCC 2.91.60
EGCS 1.1.2 15. mars 1999 GCC 2.91.66
GNU Compiler Collection
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
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 Tilføyde GNU Ada-95
Mikroprosessorer som ikke lenger støttes:
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
Mikroprosessorer som ikke lenger støttes:
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
Mikroprosessorer som ikke lenger støttes:
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 4.0 21. april 2005

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.0.1 7. juli 2005 bugfiks
GCC 4.0.2 18. september 2005 bugfiks
GCC 4.0.3 10. mars 2006 bugfiks
GCC 4.0.4 31. januar 2007 bugfiks
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

[rediger] Referanser

  1. ^ GCC Releases. GNU Project. Besøkt 27. desember 2006(2006-12-27 ).
  2. ^ Programming Languages Supported by GCC. GNU Project. Besøkt 27. desember 2006(2006-12-27 ).
  3. ^ Proceedings of the 2003 GCC Developers Summit (sidene 171-193)

[rediger] Se også

Personlige verktøy