Ve čtvrtek 13. března 2025 se podařilo týmu Multimediaexpo.cz
dokončit zcela nový balíček 900 000 fotografií na plných 100 procent !!
Nedostižná hranice 4 000 000 fotografií se února 2026 už nedožije...
FFresh emotion happy.png

GCC

Z Multimediaexpo.cz

(Rozdíly mezi verzemi)
m (1 revizi)
(+ Výrazné vylepšení)
 
Řá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

[skrýt]

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


[skrýt]      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