V sobotu 2. listopadu proběhla mohutná oslava naší plnoletosti !!
Multimediaexpo.cz je již 18 let na českém internetu !!

GCC

Z Multimediaexpo.cz

(Rozdíly mezi verzemi)
(+ Nový článek...)
(+ Výrazné vylepšení)
 
(Není zobrazena jedna mezilehlá verze.)
Řádka 4: Řádka 4:
Původním autorem GCC je [[Richard Stallman]], který ho roku [[1987]] vytvořil jako jednu ze základních částí svého projektu GNU; dnes projekt zastřešuje nadace [[Free Software Foundation|FSF]]. GCC je šířen pod licencí [[GNU General Public License|GNU GPL]] a stal se již de facto standardním kompilátorem v [[Open source software|open source]] operačních systémech [[unix]]ového typu, ale používá se i v některých komerčních operačních systémech, např. na [[Mac OS X]]. Existují také jeho portace pro [[Microsoft Windows]] (např. mingw).
Původním autorem GCC je [[Richard Stallman]], který ho roku [[1987]] vytvořil jako jednu ze základních částí svého projektu GNU; dnes projekt zastřešuje nadace [[Free Software Foundation|FSF]]. GCC je šířen pod licencí [[GNU General Public License|GNU GPL]] a stal se již de facto standardním kompilátorem v [[Open source software|open source]] operačních systémech [[unix]]ového typu, ale používá se i v některých komerčních operačních systémech, např. na [[Mac OS X]]. Existují také jeho portace pro [[Microsoft Windows]] (např. mingw).
-
Aktuální verze programu: '''4.3.2''' ([[27. srpen|27. srpna]] [[2008]])
+
Aktuální verze programu: '''6.2''' ([[22. srpen|22. srpna]] [[2016]])
 +
== Jazyky ==
 +
Od uvolnění verze 4.1.1, standardní verze kompilátoru obsahuje podporu těchto jazyků:
 +
* [[Ada]] (GCC Ada, také známý jako ''GNAT'')
 +
* [[C (programovací jazyk)|jazyk C]]
 +
* [[C++]] (GCC pro C++ nebo ''G++'')
 +
* [[D (programovací jazyk)|jazyk D]]<ref>http://gdcproject.org/ GDC</ref> (GCC D, také jako ''GDC'')
 +
* [[Fortran]] (GCC Fortran nebo ''GFortran'')
 +
* [[Go (programovací jazyk)|Go]]&nbsp;<ref>[http://gcc.gnu.org/gcc-4.6/changes.html GCC 4.6 Release Series (anglicky)]</ref>
 +
* [[Java (programovací jazyk)|Java]] (GCC Java nebo ''GCJ'')
 +
* [[Objective-C]]
 +
* [[Objective-C#Objective C.2B.2B|Objective-C++]]
 +
 +
Kompilátor jazyku [[Vala (programovací jazyk)|Vala]] část kompilace provádí s využitím GCC. Kompilace jazyku [[Go (programovací jazyk)|Go]] se nejčastěji provádí s gccgo, což je nestandardní verze GCC.
 +
 +
== Struktura ==
 +
Uživatel spustí řídicí program s názvem gcc, který interpretuje argumenty a rozhodne, jaký jazyk má být pro který vstupní soubor kompilátorem použit. Nejdříve vstupní zdrojový kód zpracuje [[preprocesor]]. Výsledek je předán [[překladač]]i a&nbsp;výstupem je program v [[Jazyk symbolických adres|jazyce symbolických adres]]. Poté je spuštěn [[linker]], který vytvoří výsledné soubory se strojovým kódem.
 +
 +
Pro každý z jazyků, které GCC podporuje, je v k dispozici frontend („přední část“) překladače, jehož vstupem je zdrojový kód a výstupem mezikód v jazyce GIMPLE, který je nezávislý na jazyce vstupního kódu. Tento mezikód dále zpracovává backend.
 +
 +
Překladač provede optimalizace a na kód jsou aplikovány statické metody analýzy kódu (např. FORTIFY_SOURCE, která se snaží odhalit možná [[přetečení na zásobníku]]). Tyto operace se dělí na architektuře nezávislé (GIMPLE) a na architektuře závislé (RTL). Finální kód v jazyce symbolických adres se je vytvořen za použití na architektuře závislých vzorů, původně založených na algoritmu Jacka Davidsona a Chrise Frasera.
 +
 +
GCC je napsán primárně v [[C (programovací jazyk)|jazyce C]] s výjimkou některých částí frontendu pro jazyk [[Ada]]. Distribuce obsahuje standardní knihovny pro [[Ada|Adu]], [[C (programovací jazyk)|C]] a [[Java (programovací jazyk)|Javu]]. Tyto knihovny jsou většinou psané ve stejných jazycích, pro které jsou určeny.<ref>[http://www.ohloh.net/projects/gcc/analyses/latest jazyky používající GCC při kompilaci (anglicky)]</ref> Na některých platformách je distribuována nízkoúrovňová knihovna ''libgcc'', která je z části napsána ve strojově nezávislém jazyce C a&nbsp;z&nbsp;části v [[Jazyk symbolických adres|jazyce symbolických adres]] závislých na cílovém [[mikroprocesor|procesoru]].
 +
 +
== Reference ==
 +
<references />
 +
=== Související články ===
 +
* [[LLVM]]
== Externí odkazy ==
== Externí odkazy ==
* [http://gcc.gnu.org/ gcc.gnu.org – domovská stránka GCC (anglicky)]
* [http://gcc.gnu.org/ gcc.gnu.org – domovská stránka GCC (anglicky)]
* [http://www.network-theory.co.uk/docs/gccintro/ An Introduction to GCC (anglicky)]
* [http://www.network-theory.co.uk/docs/gccintro/ An Introduction to GCC (anglicky)]
-
* [http://www.cfdvs.iitb.ac.in/~amv/gcc-int-docs/#gccdocs The GCC Architecture Documents (anglicky)]
 
-
{{Článek z Wikipedie}}
+
{{GNU}}{{Článek z Wikipedie}}
 +
[[Kategorie:GNU]]
[[Kategorie:Překladače]]
[[Kategorie:Překladače]]
[[Kategorie:Svobodný software]]
[[Kategorie:Svobodný software]]
[[Kategorie:Multiplatformní software]]
[[Kategorie:Multiplatformní software]]

Aktuální verze z 8. 11. 2016, 10:24

GCC na příkazové řádce

GNU Compiler Collection (zkráceně GCC) je sada kompilátorů vytvořených v rámci projektu GNU. Původně se jednalo pouze o překladač programovacího jazyka C (a zkratka tehdy znamenala GNU C Compiler), později byly na stejném společném základě vytvořeny překladače jazyků C++, Fortran, Ada a dalších.

Původním autorem GCC je Richard Stallman, který ho roku 1987 vytvořil jako jednu ze základních částí svého projektu GNU; dnes projekt zastřešuje nadace FSF. GCC je šířen pod licencí GNU GPL a stal se již de facto standardním kompilátorem v open source operačních systémech unixového typu, ale používá se i v některých komerčních operačních systémech, např. na Mac OS X. Existují také jeho portace pro Microsoft Windows (např. mingw).

Aktuální verze programu: 6.2 (22. srpna 2016)

Obsah

Jazyky

Od uvolnění verze 4.1.1, standardní verze kompilátoru obsahuje podporu těchto jazyků:

Kompilátor jazyku Vala část kompilace provádí s využitím GCC. Kompilace jazyku Go se nejčastěji provádí s gccgo, což je nestandardní verze GCC.

Struktura

Uživatel spustí řídicí program s názvem gcc, který interpretuje argumenty a rozhodne, jaký jazyk má být pro který vstupní soubor kompilátorem použit. Nejdříve vstupní zdrojový kód zpracuje preprocesor. Výsledek je předán překladači a výstupem je program v jazyce symbolických adres. Poté je spuštěn linker, který vytvoří výsledné soubory se strojovým kódem.

Pro každý z jazyků, které GCC podporuje, je v k dispozici frontend („přední část“) překladače, jehož vstupem je zdrojový kód a výstupem mezikód v jazyce GIMPLE, který je nezávislý na jazyce vstupního kódu. Tento mezikód dále zpracovává backend.

Překladač provede optimalizace a na kód jsou aplikovány statické metody analýzy kódu (např. FORTIFY_SOURCE, která se snaží odhalit možná přetečení na zásobníku). Tyto operace se dělí na architektuře nezávislé (GIMPLE) a na architektuře závislé (RTL). Finální kód v jazyce symbolických adres se je vytvořen za použití na architektuře závislých vzorů, původně založených na algoritmu Jacka Davidsona a Chrise Frasera.

GCC je napsán primárně v jazyce C s výjimkou některých částí frontendu pro jazyk Ada. Distribuce obsahuje standardní knihovny pro Adu, C a Javu. Tyto knihovny jsou většinou psané ve stejných jazycích, pro které jsou určeny.[3] Na některých platformách je distribuována nízkoúrovňová knihovna libgcc, která je z části napsána ve strojově nezávislém jazyce C a z části v jazyce symbolických adres závislých na cílovém procesoru.

Reference

  1. http://gdcproject.org/ GDC
  2. GCC 4.6 Release Series (anglicky)
  3. jazyky používající GCC při kompilaci (anglicky)

Související články

Externí odkazy


     Projekt GNU
Organizace

GNU ManifestFree Software Foundation

Licence

GNU General Public LicenseGNU Lesser General Public LicenseAffero General Public LicenseGNU Free Documentation LicenseGPL linking exception

Software

GNUHurdGNOMEGnuzillaIceCatGnashBashGCCEmacsGNU C LibraryCoreutilsGNU build systemgettext

Stoupenci

Federico HeinzRichard Stallman