Ve středu 26. března 2025 se podařilo týmu Multimediaexpo.cz
dokončit zcela nový balíček 1 000 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

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