Multimediaexpo.cz je již 18 let na českém internetu !!
GCC
Z Multimediaexpo.cz
(+ 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: ''' | + | 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]] <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 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 z čá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)] | ||
- | |||
- | {{Č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
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ů:
- Ada (GCC Ada, také známý jako GNAT)
- jazyk C
- C++ (GCC pro C++ nebo G++)
- jazyk D[1] (GCC D, také jako GDC)
- Fortran (GCC Fortran nebo GFortran)
- Go [2]
- Java (GCC Java nebo GCJ)
- Objective-C
- Objective-C++
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
- ↑ http://gdcproject.org/ GDC
- ↑ GCC 4.6 Release Series (anglicky)
- ↑ jazyky používající GCC při kompilaci (anglicky)
Související články
Externí odkazy
Projekt GNU |
---|
Organizace |
Licence |
GNU General Public License • GNU Lesser General Public License • Affero General Public License • GNU Free Documentation License • GPL linking exception |
Software |
GNU • Hurd • GNOME • Gnuzilla • IceCat • Gnash • Bash • GCC • Emacs • GNU C Library • Coreutils • GNU build system • gettext |
Stoupenci |
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |